diff --git a/examples/data/stm/output.nxs b/examples/data/stm/output.nxs
deleted file mode 100644
index ea12f3891a79585b6b296017501f8a087f9a6573..0000000000000000000000000000000000000000
Binary files a/examples/data/stm/output.nxs and /dev/null differ
diff --git a/examples/data/stm/stm.zip b/examples/data/stm/stm.zip
deleted file mode 100644
index a04e9e8107c4bf957fbffa5cbc74075dde80455c..0000000000000000000000000000000000000000
Binary files a/examples/data/stm/stm.zip and /dev/null differ
diff --git a/examples/data/stm/stm_example.archive.json b/examples/data/stm/stm_example.archive.json
deleted file mode 100644
index 35766f5aa7a2f2c199be965b8e0f81648e115344..0000000000000000000000000000000000000000
--- a/examples/data/stm/stm_example.archive.json
+++ /dev/null
@@ -1 +0,0 @@
-{"data":{"m_def":"../upload/raw/STS.scheme.archive.yaml#/definitions/section_definitions/0","reader":"stm","nxdl":"NXsts","input_files":["config_file_for_sxm.json","STM_nanonis_generic_5e.sxm","eln_data.yaml"],"definition":"NXsts","experiment_type":"stm","type":"background","collection_identifier":"TiSe2_2303a_annealing_300C_5min_evaporate_Pyrene_1_","Instrument":{"software":{"version":"Generic 5e","vendor":"nanonis","rt_release":"10771","ui_release":"10771"},"lock_in":{"lock_in_data_flip_number":-1,"status":"OFF","modulation_frequency":973,"modulation_amplitude":0.005},"hardware":{"name":"Nanonis"},"stm_head_temp":5.04866,"sample_bias":{"bias":0.005,"bias_calibration":1,"bias_offset":"0"},"piezo_config":{"active_calib":"LHe"}},"experiment_identifier":"C:\\Users\\SPM-PEEM\\Desktop\\DATA_Nanonis\\20220711_CreaTec_Service_Benchmarks_LHe\\Nanonis-Session-PMD100-HVHU_CreaTec_Service_PalmaLabBerlin220711","experiment_description":"A new TiSe2, annealed at 300 C for 5 min, then cool down to RT, evaporate the Pyrene on RT, 2.2 E -7, totally 10 s.","entry_identifier":"TiSe2_2303a_annealing_300C_5min_evaporate_Pyrene_1_0070"}}
\ No newline at end of file
diff --git a/examples/data/sts/STS.scheme.archive.yaml b/examples/data/sts/STS.scheme.archive.yaml
deleted file mode 100644
index 2878fd5942d396f18759b5d566acd91e5fb0df76..0000000000000000000000000000000000000000
--- a/examples/data/sts/STS.scheme.archive.yaml
+++ /dev/null
@@ -1,655 +0,0 @@
-definitions:
-  name: Eln example for NXiv_sweep2
-  sections:
-    stm:
-      base_sections:
-        - nomad.datamodel.metainfo.eln.NexusDataConverter
-        - nomad.datamodel.data.EntryData
-      m_annotations:
-        template:
-          reader: sts
-          nxdl: NXsts
-        eln:
-          hide: []
-      quantities:
-        definition:
-          type: 
-            type_kind: Enum
-            type_data:
-              - NXsts
-          m_annotations:
-            eln:
-              component: EnumEditQuantity
-          description: ''
-        experiment_type:
-          type:
-            type_kind: Enum
-            type_data:
-              - sts
-              - stm
-          m_annotations:
-            eln:
-              component: EnumEditQuantity
-          description: 'Only two type of experiments are allowed: sts and stm.'
-        type:
-          type:
-            type_kind: Enum
-            type_data:
-              - background
-              - reference
-              - sample
-         # TODO: Are there other types e.g. foreground
-          m_annotations:
-            eln:
-              component: EnumEditQuantity
-          description: |
-            The equipments and techniques as well as the parameter settings
-            and reference signals are used during the experiments used in the scanning
-            tunneling microscopy(STM).
-        entry_identifier:
-          type: str
-          m_annotations:
-            eln:
-              component: StringEditQuantity
-          description: |
-            The name of the output file, with the number of scans at the end.e.g.
-            (e.g. 221122_Au_5K00014) '
-        # TODO: Confirm it.
-        collection_identifier:
-          type: str
-          m_annotations:
-            eln:
-              component: StringEditQuantity
-          description: |
-            The name of the series output file, which represents only
-            the public part of the output file. (e.g. 221122_Au_5K).
-        experiment_identifier:
-          type: str
-          m_annotations:
-            eln:
-              component: StringEditQuantity
-          description: |
-            Path to storage of output files. (e.g. Path C:\Users\SPM-PEEM\Desktop\DATA_Nanonis\20220711_CreaTec_Service_Benchmarks_LHe\Nanonis-Session-PMD100-HVHU_CreaTec_Service_PalmaLabBerlin220711)
-        experiment_description:
-          type: str
-          m_annotations:
-            eln:
-              component: StringEditQuantity
-          description: |
-            Descriptive comments for this experiment, added by the experimenter,
-            coming from the output file. (e.g. Comment01 SYNC & Filter LP 8order WITHDRAW
-            600 steps, locked Au(111), 50pA, 100 mV set point, 1mV DCA, 973Hz,138
-            1st H, -84 2nd H).
-      sub_sections:
-        Instrument:
-          section:
-            m_annotations:
-              eln:
-                overview: true
-            sub_sections:
-              hardware:
-                section:
-                  m_annotations:
-                    eln:
-                      overview: true
-                  quantities:
-                    name:
-                      type: str
-                      m_annotations:
-                        eln:
-                          component: StringEditQuantity
-                      description: |
-                        Name of the hardware. (e.g. Nanonis BP5e).
-              software:
-                section:
-                  m_annotations:
-                    eln:
-                      overview: true
-                  quantities:
-                    version:
-                      type:
-                        type_kind: Enum
-                        type_data:
-                          - Generic 5e
-                      m_annotations:
-                        eln:
-                          component: EnumEditQuantity
-                      description: Version of the software.
-                    vendor:
-                      type:
-                        type_kind: Enum
-                        type_data:
-                          - nanonis
-                      m_annotations:
-                        eln:
-                          component: EnumEditQuantity
-                      description: Vendor of the software.
-                    rt_release:
-                      type: str
-                      m_annotations:
-                        eln:
-                          component: StringEditQuantity
-                      description: RT release.
-                    ui_release:
-                      type: str
-                      m_annotations:
-                        eln:
-                          component: StringEditQuantity
-                      description: UI release.
-              current_amplifier:
-                section:
-                  m_annotations:
-                    eln:
-                      overview: true
-                  quantities:
-                    amplification_factor:
-                      type: np.float64
-                      m_annotations:
-                        eln:
-                          component: NumberEditQuantity
-                      description: |
-                        The amplification factor of the current amplifier. (e.g. 1E+3).
-              lock_in:
-                section:
-                  m_annotations:
-                    eln:
-                      overview: true
-                  quantities:
-                    status:
-                      type:
-                        type_kind: Enum
-                        type_data:
-                          - "ON"
-                          - "OFF"
-                      m_annotations:
-                        eln:
-                          component: EnumEditQuantity
-                      description: |
-                        Status of Lock-in device whether while ferfoming the experiment.
-                    modulation_signal:
-                      type: np.float64
-                      unit: V
-                      m_annotations:
-                        eln:
-                          component: NumberEditQuantity
-                          defaultDisplayUnit: V
-                      description: |
-                        This is the signal on which the modulation (sine) will be added.
-                    modulation_frequency:
-                      type: np.float64
-                      unit: Hz
-                      m_annotations:
-                        eln:
-                          component: NumberEditQuantity
-                          defaultDisplayUnit: Hz
-                      description: |
-                        The signal is modulated by adding the frequency of the sine modulation. The 
-                         modulation frequency spans can be from 10 mHz to 40 kHz, corresponding to the output filter 
-                         cut-off range. When dealing with harmonics, it's essential to ensure that the 
-                         harmonic frequencies remain below ~100 kHz, which aligns with the input filter cut-off. 
-                         Be mindful that hardware filters might impact the amplitude as the signal approaches 
-                         their cut-off frequencies (e.g. 973E+0).
-                    modulation_amplitude:
-                      type: np.float64
-                      unit: V
-                      m_annotations:
-                        eln:
-                          component: NumberEditQuantity
-                          defaultDisplayUnit: V
-                      description: |
-                        The amplitude (in physical units of modulated signal) of the sine modulation.
-                    demodulated_signal:
-                      type: np.float64
-                      unit: A 
-                      m_annotations:
-                        eln:
-                          component: NumberEditQuantity
-                          defaultDisplayUnit: A
-                      description: |
-                        The input signal (STS signal) will be demodulated, in order to
-                        determine the amplitude and phase at the frequency set in the
-                        Frequency field or harmonics, such as current, bias, et.al.
-                    lock_in_data_flip_number:
-                      type: np.float64
-                      m_annotations:
-                        eln:
-                          component: NumberEditQuantity
-                      description: |
-                        Whether to flip the surve or not.
-              sample_bias:
-                section:
-                  m_annotations:
-                    eln:
-                      overview: true
-                  quantities:
-                    bias:
-                      type: np.float64
-                      unit: V
-                      m_annotations:
-                        eln:
-                          component: NumberEditQuantity
-                          defaultDisplayUnit: V
-                      description: Applied a voltage between tip and sample.
-                    bias_calibration:
-                      type: np.float64
-                      m_annotations:
-                        eln:
-                          component: NumberEditQuantity
-                    bias_offset:
-                      type: str
-                      unit: V
-                      m_annotations:
-                        eln:
-                          component: StringEditQuantity
-                          defaultDisplayUnit: V
-                      description: ''
-              piezo_config:
-                section:
-                  m_annotations:
-                    eln:
-                      overview: true
-                  quantities:
-                    active_calib:
-                      type: str
-                      m_annotations:
-                        eln:
-                          component: StringEditQuantity
-                      description: |
-                        The name of caliberation type. (e.g. LHe).
-                    drift_correction_status:
-                      type: bool
-                      m_annotations:
-                        eln:
-                          component: BoolEditQuantity
-                          defaultDisplayUnit: on/off
-                      description: |
-                        Use the button to turn on/off the drift compensation. (e.g. FALSE).
-              Environment:
-                section:
-                  m_annotations:
-                    eln:
-                      overview: true
-                  sub_sections:
-                    Current_sensor:
-                      section:
-                        m_annotations:
-                          eln:
-                            overview: true
-                        quantities:
-                          current:
-                            type: np.float64
-                            unit: A
-                            m_annotations:
-                              eln:
-                                component: NumberEditQuantity
-                                defaultDisplayUnit: A
-                            description: ' This is set-point of tip current. '
-                          current_calibration:
-                            type: np.float64
-                            unit: A/V
-                            m_annotations:
-                              eln:
-                                component: NumberEditQuantity
-                                defaultDisplayUnit: A/V
-                            description: Value of calibration that comes as A/V.
-                          current_offset:
-                            type: np.float64
-                            unit: A
-                            m_annotations:
-                              eln:
-                                component: NumberEditQuantity
-                                defaultDisplayUnit: A
-                            description: ''
-                          current_gain:
-                            type: np.float64
-                            m_annotations:
-                              eln:
-                                component: NumberEditQuantity
-                    Position:
-                      section:
-                        m_annotations:
-                          eln:
-                            overview: true
-                        quantities:
-                          x:
-                            type: np.float64
-                            unit: m
-                            m_annotations:
-                              eln:
-                                component: NumberEditQuantity
-                                defaultDisplayUnit: m
-                            description: |
-                              The scanning area in x position in the frame. (e.g. -890.53E-12) '
-                          y:
-                            type: np.float64
-                            unit: m
-                            m_annotations:
-                              eln:
-                                component: NumberEditQuantity
-                                defaultDisplayUnit: m
-                            description: |
-                              The scanning area in y position in the frame. (e.g. 29.6968E-9) '
-                          z:
-                            type: np.float64
-                            unit: m
-                            m_annotations:
-                              eln:
-                                component: NumberEditQuantity
-                                defaultDisplayUnit: m
-                            description: |
-                              The scanning area in x position in the frame. (e.g. 130.5E-9).
-                        sub_sections:
-                          z_controller:
-                            section:
-                              m_annotations:
-                                eln:
-                                  overview: true
-                              quantities:
-                                z:
-                                  type: np.float64
-                                  unit: m
-                                  m_annotations:
-                                    eln:
-                                      component: NumberEditQuantity
-                                      defaultDisplayUnit: m
-                                  description: |
-                                    Indicate the tip position Z between tip and sample. The tip
-                                    position can also be varied when the controller is not
-                                    running. (e.g. 130.5E-9).
-                    Sweep_control:
-                      section:
-                        m_annotations:
-                          eln:
-                            overview: true
-                        sub_sections:
-                          Bias_spectroscopy:
-                            section:
-                              m_annotations:
-                                eln:
-                                  overview: true
-                              quantities:
-                                integration_time:
-                                  type: np.float64
-                                  unit: s
-                                  m_annotations:
-                                    eln:
-                                      component: NumberEditQuantity
-                                      defaultDisplayUnit: s
-                                  description: |
-                                    Time during which the spectroscopy data are acquired and
-                                    averaged. (e.g. 150E-6).
-                                number_of_sweeps:
-                                  type: np.float64
-                                  m_annotations:
-                                    eln:
-                                      component: NumberEditQuantity
-                                  description:
-                                    Number of sweeps to measure and average. (e.g. 100).
-                                sweep_start:
-                                  type: np.float64
-                                  unit: V
-                                  m_annotations:
-                                    eln:
-                                      component: NumberEditQuantity
-                                      defaultDisplayUnit: V
-                                  description: |
-                                    The first bias values of the sweep. (e.g. -300E-3) '
-                                sweep_end:
-                                  type: np.float64
-                                  unit: V
-                                  m_annotations:
-                                    eln:
-                                      component: NumberEditQuantity
-                                      defaultDisplayUnit: V
-                                  description: |
-                                    The last bias values of the sweep (e.g. 300E-3).
-                                num_pixel:
-                                  type: np.float64
-                                  m_annotations:
-                                    eln:
-                                      component: NumberEditQuantity
-                                  description: |
-                                    Define the sweep number of points, that is, the maximum
-                                    spectrum resolution eq. Bias window divide by Num Pixel
-                                    (e.g. 4096).
-                                z_avg_time:
-                                  type: np.float64
-                                  unit: s
-                                  m_annotations:
-                                    eln:
-                                      component: NumberEditQuantity
-                                      defaultDisplayUnit: s
-                                  description: |
-                                    Duration over which the Z position is recorded and averaged
-                                    before and after the sweep (the latter only if Record final Z
-                                    position is selected in the Advanced section). After the
-                                    initial Z averaging time, if Z-Controller to Hold is selected
-                                    in the Advanced section, the Z-Controller is set to hold and
-                                    the tip is placed at the previously averaged Z position (plus
-                                    Z offset). (e.g. 100E-3).
-                          circuit:
-                            section:
-                              m_annotations:
-                                eln:
-                                  overview: true
-                              quantities:
-                                rt_frequency:
-                                  type: np.float64
-                                  unit: Hz
-                                  m_annotations:
-                                    eln:
-                                      component: NumberEditQuantity
-                                      defaultDisplayUnit: Hz
-                                  description: |
-                                    The bandwitdh of the Hardware and/or Software which is
-                                    insturment specific. For example: Nanonis Generic 5 has RT
-                                     Frequency 20E-3.
-                                signals_oversampling:
-                                  type: np.float64
-                                  m_annotations:
-                                    eln:
-                                      component: NumberEditQuantity
-                                  description: |
-                                    (Signals Periods) The Signals Period is the rate at which
-                                    the signals are transferred to the host computer running the
-                                    control software. This is usually lower by a factor of 10
-                                    than the sampling rate, because an internal oversampling of the
-                                    signal is done on the real time engine. You can reduce the
-                                    oversampling down to 1 in order to resolve higher frequencies
-                                    in the Spectrum Analyzer. (e.g. 10).
-                                acquisition_period:
-                                  type: np.float64
-                                  unit: s
-                                  m_annotations:
-                                    eln:
-                                      component: NumberEditQuantity
-                                      defaultDisplayUnit: s
-                                  description: |
-                                    Update rate for several processes like History Graph,
-                                    Auto-Approach, and for many Programming Interface functions.
-                                    This is usually set to 20 ms. All additional timings (7-9)
-                                    can only be integer multiples of this value. They can be set
-                                    to different values, but the actual timing value will be
-                                    coerced to a multiple of the Acquisition Period. (e.g. 20E-3).
-                                animations_period:
-                                  type: np.float64
-                                  unit: s
-                                  m_annotations:
-                                    eln:
-                                      component: NumberEditQuantity
-                                      defaultDisplayUnit: s
-                                  description: |
-                                    Update rate of animated graphical indicators. These are e.g.
-                                    some graphs & sliders. A reasonable value is 40 ms (25 updates
-                                    per second). Increase this period to reduce the processor load
-                                    for the graphical user interface, especially on slow computers.
-                                    This value is purely a user interface update rate and does not
-                                    affect measurements in any way. (e.g. 20E-3) '
-                                indicators_period:
-                                  type: np.float64
-                                  unit: s
-                                  m_annotations:
-                                    eln:
-                                      component: NumberEditQuantity
-                                      defaultDisplayUnit: s
-                                  description: |
-                                    Update rate of digital indicators, e.g. the numbers displayed
-                                    besides each slider. Here, 3 updates per second, or 300 ms is
-                                    enough. This value is purely a user interface update rate and
-                                    does not affect measurements in any way. (e.g. 300E-3).
-                                measurements_period:
-                                  type: np.float64
-                                  unit: s
-                                  m_annotations:
-                                    eln:
-                                      component: NumberEditQuantity
-                                      defaultDisplayUnit: s
-                                  description: |
-                                    The Measurements period is the integration time for precise
-                                    measurements (averaging over specified period), mostly used
-                                    in sweep modules. Examples are recording of a force-distance
-                                    curve or a resonance of a cantilever. For fast measurements
-                                    with small steps, a value of 40 ms may be reasonable. For
-                                    normal use, 300-500 ms is a good value, but for recording a
-                                    resonance of a high-Q cantilever, values of several seconds
-                                    might be necessary. Usually this parameter doesn \u2019t need
-                                    to be set from this module; the sweep modules will set this
-                                    value according to the sweep timings. (e.g. 500E-3) "
-                    Scan_control:
-                      section:
-                        m_annotations:
-                          eln:
-                            overview: true
-                        sub_sections:
-                          Roi:
-                            section:
-                              m_annotations:
-                                eln:
-                                  overview: true
-                            # TODO: Confirm it.
-                              quantities:
-                                frame:
-                                  type: str
-                                  m_annotations:
-                                    eln:
-                                      component: StringEditQuantity
-                                  description: |
-                                    Also clarify the frame for the ROI of the scan (should depend
-                                    on the lab frame).
-                          Circuit:
-                            section:
-                              m_annotations:
-                                eln:
-                                  overview: true
-                              quantities:
-                                channels_current:
-                                  type: str
-                                  unit: A
-                                  m_annotations:
-                                    eln:
-                                      component: StringEditQuantity
-                                      defaultDisplayUnit: A
-                                  description: |
-                                    The scan channels are selected by users. (e.g. (A);Bias (V);Z
-                                    (m);LI Demod 2 X (A); LI 2 Y (A);LI Demod 1 X (A);
-                                    LI Demod 1 Y (A)).
-                          Positioner:
-                            section:
-                              m_annotations:
-                                eln:
-                                  overview: true
-                              quantities:
-                                scanfield:
-                                  type: np.float64
-                                  m_annotations:
-                                    eln:
-                                      component: NumberEditQuantity
-                                  description: |
-                                    Configure the scan frame like x position; y position; width;
-                                    height. (e.g. 3.11737E-9;29.1583E-9;15E-9;15E-9;0E+0) '
-                                pixels_line:
-                                  type: np.float64
-                                  m_annotations:
-                                    eln:
-                                      component: NumberEditQuantity
-                                  description: |
-                                    Scan resolution by setting the Lines equal to Pixels.  (e.g. 512) '
-                                lines:
-                                  type: np.float64
-                                  m_annotations:
-                                    eln:
-                                      component: NumberEditQuantity
-                                  description: |
-                                    Define the image resolution. (e.g. 512).
-                                speed_forw:
-                                  type: np.float64
-                                  unit: m/s
-                                  m_annotations:
-                                    eln:
-                                      component: NumberEditQuantity
-                                      defaultDisplayUnit: m/s
-                                  description: |
-                                    Define the scan forward speed in the forward direction. (m/s)
-                                    (e.g. 11.7187E-9).
-                                speed_backw:
-                                  type: np.float64
-                                  unit: m/s
-                                  m_annotations:
-                                    eln:
-                                      component: NumberEditQuantity
-                                      defaultDisplayUnit: m/s
-                                  description: |
-                                    Define the scan backward speed in the forward direction. (m/s)
-                                    (e.g. 11.7187E-9) '
-            quantities:
-              stm_head_temp:
-                type: np.float64
-                unit: K
-                m_annotations:
-                  eln:
-                    component: NumberEditQuantity
-                    defaultDisplayUnit: K
-                description: |
-                  Temperature of STM head. Note: At least one field from stm_head_temperature,
-                  cryo_bottom_temp and cryo_sheild_temp must be provided. '
-              cryo_bottom_temp:
-                type: np.float64
-                unit: K
-                m_annotations:
-                  eln:
-                    component: NumberEditQuantity
-                    defaultDisplayUnit: K
-                description: |
-                  Temperature of LHe helium cryostat. Note: At least one field from
-                  stm_head_temperature, cryo_bottom_temp and cryo_sheild_temp must be provided.
-              cryo_shield_temp:
-                type: np.float64
-                unit: K
-                m_annotations:
-                  eln:
-                    component: NumberEditQuantity
-                    defaultDisplayUnit: K
-                description: |
-                  Temperature of LN2 nitrogen shield. Temperature 3 (K) (e.g 78.00000E+0). Note:
-                  At least one field from stm_head_temperature, cryo_bottom_temp and
-                  cryo_sheild_temp must be provided.
-        sample:
-          section:
-            m_annotations:
-              eln:
-                overview: true
-            quantities:
-              name:
-                type: str
-                m_annotations:
-                  eln:
-                    component: StringEditQuantity
-                description: |
-                  Name of the sample.
-              sample_prep_descripton:
-                type: str
-                m_annotations:
-                  eln:
-                    component: StringEditQuantity
-                description: |
-                  At this moment no base class available that can track entire sample preparation.
diff --git a/examples/data/stm/STS.scheme.archive.yaml b/examples/data/sts/common_files/STS.scheme.archive.yaml
similarity index 79%
rename from examples/data/stm/STS.scheme.archive.yaml
rename to examples/data/sts/common_files/STS.scheme.archive.yaml
index 0850c788874e27aa0be9548e0e54eb0c6dc74cd2..23e0980b83835e56fdf62c5633db132f99b1ca43 100644
--- a/examples/data/stm/STS.scheme.archive.yaml
+++ b/examples/data/sts/common_files/STS.scheme.archive.yaml
@@ -1,5 +1,5 @@
 definitions:
-  name: Eln example for NXiv_sweep2
+  name: Eln example for STM/STS (Scanning Tunneling Microscopy / Scanning Tunneling Spectroscopy)
   sections:
     stm:
       base_sections:
@@ -12,8 +12,15 @@ definitions:
         eln:
           hide: []
       quantities:
+        default:
+          type: str
+          m_annotations:
+            eln:
+              component: StringEditQuantity
+          description: |
+            The name of the default plot (e.g. backward, forward) to be displayed on the entry of NeXus file
         definition:
-          type: 
+          type:
             type_kind: Enum
             type_data:
               - NXsts
@@ -93,28 +100,73 @@ definitions:
                     eln:
                       overview: true
                   quantities:
+                    default:
+                      type: str
+                      m_annotations:
+                        eln:
+                          component: StringEditQuantity
+                      description: |
+                        The name of the default plot or group.
                     name:
                       type: str
                       m_annotations:
                         eln:
                           component: StringEditQuantity
                       description: |
-                        Name of the hardware. (e.g. Nanonis BP5e).
+                        Name of the hardware. (e.g. Nanonis).
+                    model:
+                      type:
+                        type_kind: Enum
+                        type_data:
+                          - Generic 5e
+                      m_annotations:
+                        eln:
+                          component: EnumEditQuantity
+                      description: |
+                         Version or model of the component named by the manufacturer (e.g. Nanonis).
+                      # TODO add option for model
+                    model/@version:
+                      type: str
+                      m_annotations:
+                        eln:
+                          component: StringEditQuantity
+                      description: |
+                        If model has a distinquishable version (e.g. BP5e).
+                      # TODO add option for model/@version
               software:
                 section:
                   m_annotations:
                     eln:
                       overview: true
                   quantities:
-                    version:
+                    default:
+                      type: str
+                      m_annotations:
+                        eln:
+                          component: StringEditQuantity
+                      description: |
+                        The name of the default plot or group.
+                    model:
+                      type:
+                        type_kind: Enum
+                        type_data:
+                          - Generic
+                      m_annotations:
+                        eln:
+                          component: EnumEditQuantity
+                      description: |
+                         Version or model of the component named by the manufacturer.
+                    model/@version:
                       type:
                         type_kind: Enum
                         type_data:
                           - Generic 5e
+                          - Generic 4.5
                       m_annotations:
                         eln:
                           component: EnumEditQuantity
-                      description: Version of the software.
+                      description: |
+                        If model has a distinquishable version.
                     vendor:
                       type:
                         type_kind: Enum
@@ -142,6 +194,13 @@ definitions:
                     eln:
                       overview: true
                   quantities:
+                    default:
+                      type: str
+                      m_annotations:
+                        eln:
+                          component: StringEditQuantity
+                      description: |
+                        The name of the default plot or group.
                     amplification_factor:
                       type: np.float64
                       m_annotations:
@@ -155,6 +214,13 @@ definitions:
                     eln:
                       overview: true
                   quantities:
+                    default:
+                      type: str
+                      m_annotations:
+                        eln:
+                          component: StringEditQuantity
+                      description: |
+                        The name of the default plot or group.
                     status:
                       type:
                         type_kind: Enum
@@ -183,11 +249,11 @@ definitions:
                           component: NumberEditQuantity
                           defaultDisplayUnit: Hz
                       description: |
-                        The signal is modulated by adding the frequency of the sine modulation. The 
-                         modulation frequency spans can be from 10 mHz to 40 kHz, corresponding to the output filter 
-                         cut-off range. When dealing with harmonics, it's essential to ensure that the 
-                         harmonic frequencies remain below ~100 kHz, which aligns with the input filter cut-off. 
-                         Be mindful that hardware filters might impact the amplitude as the signal approaches 
+                        The signal is modulated by adding the frequency of the sine modulation. The
+                         modulation frequency spans can be from 10 mHz to 40 kHz, corresponding to the output filter
+                         cut-off range. When dealing with harmonics, it's essential to ensure that the
+                         harmonic frequencies remain below ~100 kHz, which aligns with the input filter cut-off.
+                         Be mindful that hardware filters might impact the amplitude as the signal approaches
                          their cut-off frequencies (e.g. 973E+0).
                     modulation_amplitude:
                       type: np.float64
@@ -200,7 +266,7 @@ definitions:
                         The amplitude (in physical units of modulated signal) of the sine modulation.
                     demodulated_signal:
                       type: np.float64
-                      unit: A 
+                      unit: A
                       m_annotations:
                         eln:
                           component: NumberEditQuantity
@@ -222,6 +288,13 @@ definitions:
                     eln:
                       overview: true
                   quantities:
+                    default:
+                      type: str
+                      m_annotations:
+                        eln:
+                          component: StringEditQuantity
+                      description: |
+                        The name of the default plot or group.
                     bias:
                       type: np.float64
                       unit: V
@@ -236,11 +309,11 @@ definitions:
                         eln:
                           component: NumberEditQuantity
                     bias_offset:
-                      type: str
+                      type: np.float64
                       unit: V
                       m_annotations:
                         eln:
-                          component: StringEditQuantity
+                          component: NumberEditQuantity
                           defaultDisplayUnit: V
                       description: ''
               piezo_config:
@@ -249,6 +322,13 @@ definitions:
                     eln:
                       overview: true
                   quantities:
+                    default:
+                      type: str
+                      m_annotations:
+                        eln:
+                          component: StringEditQuantity
+                      description: |
+                        The name of the default plot or group.
                     active_calib:
                       type: str
                       m_annotations:
@@ -261,7 +341,6 @@ definitions:
                       m_annotations:
                         eln:
                           component: BoolEditQuantity
-                          defaultDisplayUnit: on/off
                       description: |
                         Use the button to turn on/off the drift compensation. (e.g. FALSE).
               Environment:
@@ -269,6 +348,14 @@ definitions:
                   m_annotations:
                     eln:
                       overview: true
+                  quantities:
+                    default:
+                      type: str
+                      m_annotations:
+                        eln:
+                          component: StringEditQuantity
+                      description: |
+                        The name of the default plot or group.
                   sub_sections:
                     Current_sensor:
                       section:
@@ -276,6 +363,13 @@ definitions:
                           eln:
                             overview: true
                         quantities:
+                          default:
+                            type: str
+                            m_annotations:
+                              eln:
+                                component: StringEditQuantity
+                            description: |
+                              The name of the default plot or group.
                           current:
                             type: np.float64
                             unit: A
@@ -311,6 +405,13 @@ definitions:
                           eln:
                             overview: true
                         quantities:
+                          default:
+                            type: str
+                            m_annotations:
+                              eln:
+                                component: StringEditQuantity
+                            description: |
+                              The name of the default plot or group.
                           x:
                             type: np.float64
                             unit: m
@@ -345,6 +446,13 @@ definitions:
                                 eln:
                                   overview: true
                               quantities:
+                                default:
+                                  type: str
+                                  m_annotations:
+                                    eln:
+                                      component: StringEditQuantity
+                                  description: |
+                                    The name of the default plot or group.
                                 z:
                                   type: np.float64
                                   unit: m
@@ -368,6 +476,13 @@ definitions:
                                 eln:
                                   overview: true
                               quantities:
+                                default:
+                                  type: str
+                                  m_annotations:
+                                    eln:
+                                      component: StringEditQuantity
+                                  description: |
+                                    The name of the default plot or group.
                                 integration_time:
                                   type: np.float64
                                   unit: s
@@ -433,6 +548,13 @@ definitions:
                                 eln:
                                   overview: true
                               quantities:
+                                default:
+                                  type: str
+                                  m_annotations:
+                                    eln:
+                                      component: StringEditQuantity
+                                  description: |
+                                    The name of the default plot or group.
                                 rt_frequency:
                                   type: np.float64
                                   unit: Hz
@@ -520,14 +642,29 @@ definitions:
                         m_annotations:
                           eln:
                             overview: true
+                        quantities:
+                          default:
+                            type: str
+                            m_annotations:
+                              eln:
+                                component: StringEditQuantity
+                            description: |
+                              The name of the default plot or group.
                         sub_sections:
                           Roi:
                             section:
                               m_annotations:
                                 eln:
                                   overview: true
-                            # TODO: Confirm it.
+                              # TODO: Confirm it.
                               quantities:
+                                default:
+                                  type: str
+                                  m_annotations:
+                                    eln:
+                                      component: StringEditQuantity
+                                  description: |
+                                    The name of the default plot or group.
                                 frame:
                                   type: str
                                   m_annotations:
@@ -542,6 +679,13 @@ definitions:
                                 eln:
                                   overview: true
                               quantities:
+                                default:
+                                  type: str
+                                  m_annotations:
+                                    eln:
+                                      component: StringEditQuantity
+                                  description: |
+                                    The name of the default plot or group.
                                 channels_current:
                                   type: str
                                   unit: A
@@ -559,6 +703,13 @@ definitions:
                                 eln:
                                   overview: true
                               quantities:
+                                default:
+                                  type: str
+                                  m_annotations:
+                                    eln:
+                                      component: StringEditQuantity
+                                  description: |
+                                    The name of the default plot or group.
                                 scanfield:
                                   type: np.float64
                                   m_annotations:
@@ -602,6 +753,13 @@ definitions:
                                     Define the scan backward speed in the forward direction. (m/s)
                                     (e.g. 11.7187E-9) '
             quantities:
+              default:
+                type: str
+                m_annotations:
+                  eln:
+                    component: StringEditQuantity
+                description: |
+                  The name of the default plot or group.
               stm_head_temp:
                 type: np.float64
                 unit: K
@@ -639,6 +797,13 @@ definitions:
               eln:
                 overview: true
             quantities:
+              default:
+                type: str
+                m_annotations:
+                  eln:
+                    component: StringEditQuantity
+                description: |
+                  The name of the default plot or group.
               name:
                 type: str
                 m_annotations:
diff --git a/examples/data/sts/output.nxs b/examples/data/sts/output.nxs
deleted file mode 100644
index d4fd18a4a8e788516b69616d2458177ffecc9bb3..0000000000000000000000000000000000000000
Binary files a/examples/data/sts/output.nxs and /dev/null differ
diff --git a/examples/data/stm/STM_nanonis_generic_5e.sxm b/examples/data/sts/stm/STM_nanonis_generic_5e.sxm
similarity index 100%
rename from examples/data/stm/STM_nanonis_generic_5e.sxm
rename to examples/data/sts/stm/STM_nanonis_generic_5e.sxm
diff --git a/examples/data/stm/config_file_for_sxm.json b/examples/data/sts/stm/config_file_for_sxm.json
similarity index 98%
rename from examples/data/stm/config_file_for_sxm.json
rename to examples/data/sts/stm/config_file_for_sxm.json
index 73dd17397f9339f531ee514148191d002dd338cf..7a69f1fe0a12f8cf99765dd3e57094883ece9641 100644
--- a/examples/data/stm/config_file_for_sxm.json
+++ b/examples/data/sts/stm/config_file_for_sxm.json
@@ -61,7 +61,7 @@
     "/ENTRY[entry]/INSTRUMENT[instrument]/ENVIRONMENT[environment]/sweep_control/circuit/indicators_period": "/NanonisMain/Indicators Period",
     "/ENTRY[entry]/INSTRUMENT[instrument]/ENVIRONMENT[environment]/sweep_control/circuit/indicators_period/@units": "/NanonisMain/Indicators Period/@unit",
     "/ENTRY[entry]/INSTRUMENT[instrument]/ENVIRONMENT[environment]/sweep_control/circuit/measurements_period": "/NanonisMain/Measurements Period",
-    "/ENTRY[entry]/INSTRUMENT[instrument]/ENVIRONMENT[environment]/sweep_control/circuit/measurements_period /@units": "/NanonisMain/Measurements Period/@unit",
+    "/ENTRY[entry]/INSTRUMENT[instrument]/ENVIRONMENT[environment]/sweep_control/circuit/measurements_period/@units": "/NanonisMain/Measurements Period/@unit",
     "/ENTRY[entry]/INSTRUMENT[instrument]/ENVIRONMENT[environment]/sweep_control/circuit/rt_frequency": "/NanonisMain/RT Frequency",
     "/ENTRY[entry]/INSTRUMENT[instrument]/ENVIRONMENT[environment]/sweep_control/circuit/rt_frequency/@units": "/NanonisMain/RT Frequency/@unit",
     "/ENTRY[entry]/INSTRUMENT[instrument]/ENVIRONMENT[environment]/sweep_control/circuit/signals_oversampling": "/NanonisMain/Signals Oversampling",
@@ -129,7 +129,6 @@
                                                                        "unit":"/Piezo Configuration/Drift Z/@unit"}},
     "/ENTRY[entry]/INSTRUMENT[instrument]/piezo_config/drift_correction_status": ["/Piezo Configuration/Drift correction status",
                                                                                   "/Piezo Calibration/Drift correction status"],
-    "/ENTRY[entry]/INSTRUMENT[instrument]/piezo_config/drift_correction_status/@units": "/Piezo Configuration/Drift correction status/@unit",
     "/ENTRY[entry]/INSTRUMENT[instrument]/piezo_config/hv_gain_N": {"X":{"value": "/Piezo Configuration/HV Gain X"},
                                                                     "Y":{"value": "/Piezo Configuration/HV Gain Y"},
                                                                     "Z":{"value": "/Piezo Configuration/HV Gain Z"}},
diff --git a/examples/data/stm/eln_data.yaml b/examples/data/sts/stm/eln_data.yaml
similarity index 52%
rename from examples/data/stm/eln_data.yaml
rename to examples/data/sts/stm/eln_data.yaml
index eb20b3718474f306babea847a75eccb7669548f1..4755c13f7127e8e73f4dffd53e5843b284dde679 100644
--- a/examples/data/stm/eln_data.yaml
+++ b/examples/data/sts/stm/eln_data.yaml
@@ -1,5 +1,17 @@
 Instrument:
+  Environment:
+    Current_sensor: {}
+    Position:
+      z_controller: {}
+    Scan_control:
+      Circuit: {}
+      Positioner: {}
+      Roi: {}
+    Sweep_control: {}
+  current_amplifier: {}
   hardware:
+    model: Generic 5e
+    model/@version: 5e
     name: Nanonis
   lock_in:
     lock_in_data_flip_number: -1.0
@@ -19,20 +31,26 @@ Instrument:
     bias_calibration: 1.0
     bias_offset:
       unit: V
-      value: '0'
+      value: 0.0
   software:
+    model: Generic
+    model/@version: Generic 5e
     rt_release: '10771'
     ui_release: '10771'
     vendor: nanonis
-    version: Generic 5e
   stm_head_temp:
     unit: K
     value: 5.04866
 collection_identifier: TiSe2_2303a_annealing_300C_5min_evaporate_Pyrene_1_
+default: backward
 definition: NXsts
 entry_identifier: TiSe2_2303a_annealing_300C_5min_evaporate_Pyrene_1_0070
-experiment_description: A new TiSe2, annealed at 300 C for 5 min, then cool down to
-  RT, evaporate the Pyrene on RT, 2.2 E -7, totally 10 s.
-experiment_identifier: C:\Users\SPM-PEEM\Desktop\DATA_Nanonis\20220711_CreaTec_Service_Benchmarks_LHe\Nanonis-Session-PMD100-HVHU_CreaTec_Service_PalmaLabBerlin220711
+experiment_description: A new TiSe2, annealed at 300 C for 5 min, then cool down to   RT,
+  evaporate the Pyrene on RT, 2.2 E -7, totally 10 s.
+experiment_identifier: 'C:\Users\SPM-PEEM\Desktop\DATA_Nanonis\20220711_CreaTec_Service_Benchmarks_LHe\Nanonis-Session-PMD100-HVHU_CreaTec_Service_PalmaLabBerlin220711
+  experiment_type: stm'
 experiment_type: stm
+sample:
+  name: Test sample
+  sample_prep_descripton: This is a test sample to run a test experiment.
 type: background
diff --git a/examples/data/sts/stm/stm_eln_example.archive.json b/examples/data/sts/stm/stm_eln_example.archive.json
new file mode 100644
index 0000000000000000000000000000000000000000..5adb0987c3f2e71dd051132fa9d2628035e39851
--- /dev/null
+++ b/examples/data/sts/stm/stm_eln_example.archive.json
@@ -0,0 +1 @@
+{"data":{"m_def":"../upload/raw/STS.scheme.archive.yaml#/definitions/section_definitions/0","nxdl":"NXsts","input_files":["STM_nanonis_generic_5e.sxm","config_file_for_sxm.json","eln_data.yaml"],"default":"backward","definition":"NXsts","experiment_type":"stm","type":"background","entry_identifier":"TiSe2_2303a_annealing_300C_5min_evaporate_Pyrene_1_0070","collection_identifier":"TiSe2_2303a_annealing_300C_5min_evaporate_Pyrene_1_","experiment_identifier":"C:\\Users\\SPM-PEEM\\Desktop\\DATA_Nanonis\\20220711_CreaTec_Service_Benchmarks_LHe\\Nanonis-Session-PMD100-HVHU_CreaTec_Service_PalmaLabBerlin220711 experiment_type: stm","experiment_description":"A new TiSe2, annealed at 300 C for 5 min, then cool down to   RT, evaporate the Pyrene on RT, 2.2 E -7, totally 10 s.","Instrument":{"stm_head_temp":5.04866,"hardware":{"name":"Nanonis","model":"Generic 5e","model/@version":"5e"},"software":{"model":"Generic","model/@version":"Generic 5e","vendor":"nanonis","rt_release":"10771","ui_release":"10771"},"current_amplifier":{},"lock_in":{"status":"OFF","modulation_frequency":973,"modulation_amplitude":0.005,"lock_in_data_flip_number":-1},"sample_bias":{"bias":0.005,"bias_calibration":1,"bias_offset":0},"piezo_config":{"active_calib":"LHe"},"Environment":{"Current_sensor":{},"Position":{"z_controller":{}},"Sweep_control":{},"Scan_control":{"Roi":{},"Circuit":{},"Positioner":{}}}},"sample":{"name":"Test sample","sample_prep_descripton":"This is a test sample to run a test experiment."},"reader":"sts"}}
\ No newline at end of file
diff --git a/examples/data/sts/sts.zip b/examples/data/sts/sts.zip
deleted file mode 100644
index a4dab02d26ad49e89fd10982f805a04e50010fb7..0000000000000000000000000000000000000000
Binary files a/examples/data/sts/sts.zip and /dev/null differ
diff --git a/examples/data/sts/STS_nanonis_generic_5e_1.dat b/examples/data/sts/sts/STS_nanonis_generic_5e_1.dat
similarity index 100%
rename from examples/data/sts/STS_nanonis_generic_5e_1.dat
rename to examples/data/sts/sts/STS_nanonis_generic_5e_1.dat
diff --git a/examples/data/sts/config_file_for_dat.json b/examples/data/sts/sts/config_file_for_dat.json
similarity index 100%
rename from examples/data/sts/config_file_for_dat.json
rename to examples/data/sts/sts/config_file_for_dat.json
diff --git a/examples/data/sts/eln_data.yaml b/examples/data/sts/sts/eln_data.yaml
similarity index 55%
rename from examples/data/sts/eln_data.yaml
rename to examples/data/sts/sts/eln_data.yaml
index bfc1ab194582768eb6c82bb7dc550f8b86a33ace..75c57f434b06d13be5aade7ba0f96952dada28c5 100644
--- a/examples/data/sts/eln_data.yaml
+++ b/examples/data/sts/sts/eln_data.yaml
@@ -1,5 +1,19 @@
 Instrument:
+  Environment:
+    Current_sensor: {}
+    Position:
+      z_controller: {}
+    Scan_control:
+      Circuit: {}
+      Positioner: {}
+      Roi: {}
+    Sweep_control:
+      Bias_spectroscopy: {}
+      circuit: {}
+  current_amplifier: {}
   hardware:
+    model: Generic 5e
+    model/@version: BP5e
     name: Nanonis BP5e
   lock_in:
     lock_in_data_flip_number: -1.0
@@ -11,7 +25,7 @@ Instrument:
       value: 973.0
     modulation_signal:
       unit: V
-      value: 973.0
+      value: 0.05
     status: 'ON'
   piezo_config:
     active_calib: LHe
@@ -22,21 +36,26 @@ Instrument:
     bias_calibration: 1.0
     bias_offset:
       unit: V
-      value: '0'
+      value: 0.0
   software:
+    model: Generic
+    model/@version: Generic 5e
     rt_release: '10771'
     ui_release: '10771'
     vendor: nanonis
-    version: Generic 5e
   stm_head_temp:
     unit: K
     value: 4.92997
 collection_identifier: 221122_Au_5K
+default: li_demod_1_x
 definition: NXsts
 entry_identifier: 221122_Au_5K00014
-experiment_description: 'Bias Spectroscopy: SYNC & Filter LP 8order WITHDRAW             600
-  steps, locked Au(111), 50pA, 100 mV set point, 1mV DCA, 973Hz,138             1st
-  H, -84 2nd H'
+experiment_description: '''Bias Spectroscopy: SYNC & Filter LP 8order WITHDRAW             600   steps,
+  locked Au(111), 50pA, 100 mV set point, 1mV DCA, 973Hz,138             1st   H,
+  -84 2nd H'''
 experiment_identifier: C:\Users\SPM-PEEM\Desktop\DATA_Nanonis\20220711_CreaTec_Service_Benchmarks_LHe\Nanonis-Session-PMD100-HVHU_CreaTec_Service_PalmaLabBerlin220711
 experiment_type: sts
+sample:
+  name: Test Sample
+  sample_prep_descripton: This is a test sample for test experiment.
 type: background
diff --git a/examples/data/sts/sts/sts_eln_example.archive.json b/examples/data/sts/sts/sts_eln_example.archive.json
new file mode 100644
index 0000000000000000000000000000000000000000..3ac1855ac772bd40477dd0583be8bf4f9f7d6411
--- /dev/null
+++ b/examples/data/sts/sts/sts_eln_example.archive.json
@@ -0,0 +1 @@
+{"data":{"m_def":"../upload/raw/STS.scheme.archive.yaml#/definitions/section_definitions/0","reader":"sts","nxdl":"NXsts","input_files":["STS_nanonis_generic_5e_1.dat","config_file_for_dat.json","eln_data.yaml"],"default":"li_demod_1_x","definition":"NXsts","experiment_type":"sts","type":"background","entry_identifier":"221122_Au_5K00014","collection_identifier":"221122_Au_5K","experiment_identifier":"C:\\Users\\SPM-PEEM\\Desktop\\DATA_Nanonis\\20220711_CreaTec_Service_Benchmarks_LHe\\Nanonis-Session-PMD100-HVHU_CreaTec_Service_PalmaLabBerlin220711","experiment_description":"'Bias Spectroscopy: SYNC & Filter LP 8order WITHDRAW             600   steps, locked Au(111), 50pA, 100 mV set point, 1mV DCA, 973Hz,138             1st   H, -84 2nd H'","Instrument":{"stm_head_temp":4.92997,"hardware":{"name":"Nanonis BP5e","model":"Generic 5e","model/@version":"BP5e"},"software":{"model":"Generic","model/@version":"Generic 5e","vendor":"nanonis","rt_release":"10771","ui_release":"10771"},"current_amplifier":{},"lock_in":{"status":"ON","modulation_signal":0.05,"modulation_frequency":973,"modulation_amplitude":0.002,"lock_in_data_flip_number":-1},"sample_bias":{"bias":0.1,"bias_calibration":1,"bias_offset":0},"piezo_config":{"active_calib":"LHe"},"Environment":{"Current_sensor":{},"Position":{"z_controller":{}},"Sweep_control":{"Bias_spectroscopy":{},"circuit":{}},"Scan_control":{"Roi":{},"Circuit":{},"Positioner":{}}}},"sample":{"name":"Test Sample","sample_prep_descripton":"This is a test sample for test experiment."}}}
\ No newline at end of file
diff --git a/examples/data/sts/sts_example.archive.json b/examples/data/sts/sts_example.archive.json
deleted file mode 100644
index cda3e478dd9b1794ae150ebcca67d556684b2f5d..0000000000000000000000000000000000000000
--- a/examples/data/sts/sts_example.archive.json
+++ /dev/null
@@ -1 +0,0 @@
-{"data":{"m_def":"../upload/raw/STS.scheme.archive.yaml#/definitions/section_definitions/0","reader":"sts","nxdl":"NXsts","input_files":["STS_nanonis_generic_5e_1.dat","config_file_for_dat.json","eln_data.yaml"],"definition":"NXsts","experiment_type":"sts","type":"background","entry_identifier":"221122_Au_5K00014","collection_identifier":"221122_Au_5K","experiment_identifier":"C:\\Users\\SPM-PEEM\\Desktop\\DATA_Nanonis\\20220711_CreaTec_Service_Benchmarks_LHe\\Nanonis-Session-PMD100-HVHU_CreaTec_Service_PalmaLabBerlin220711","experiment_description":"Bias Spectroscopy: SYNC & Filter LP 8order WITHDRAW             600 steps, locked Au(111), 50pA, 100 mV set point, 1mV DCA, 973Hz,138             1st H, -84 2nd H","Instrument":{"stm_head_temp":4.92997,"hardware":{"name":"Nanonis BP5e"},"software":{"version":"Generic 5e","vendor":"nanonis","rt_release":"10771","ui_release":"10771"},"lock_in":{"status":"ON","lock_in_data_flip_number":-1,"modulation_signal":973,"modulation_frequency":973,"modulation_amplitude":0.002},"sample_bias":{"bias":0.1,"bias_calibration":1,"bias_offset":"0"},"piezo_config":{"active_calib":"LHe"}}}}
diff --git a/scripts/generate_example_uploads.sh b/scripts/generate_example_uploads.sh
index 64a8c412650e97264de739d496415e64c89a63ea..40fd6c317bf4550cc0918fa39b8e7c24a5c85aee 100755
--- a/scripts/generate_example_uploads.sh
+++ b/scripts/generate_example_uploads.sh
@@ -25,5 +25,5 @@ zip -r -j uploads/em_om.zip em_om/*
 zip -r -j uploads/em_nion.zip em_nion/*
 zip -r -j uploads/iv_temp.zip iv_temp/*
 zip -r -j uploads/xps.zip xps/*
-zip -r -j uploads/sts.zip sts/*
-zip -r -j uploads/stm.zip stm/*
+zip -r -j uploads/sts.zip sts/sts/* sts/common_files/*
+zip -r -j uploads/stm.zip sts/stm/* sts/common_files/*