diff --git a/config/label_templates/st-ten-11/ETA30x16.prn b/config/label_templates/st-ten-11/ETA30x16.prn
new file mode 100644
index 0000000..b4c15c1
--- /dev/null
+++ b/config/label_templates/st-ten-11/ETA30x16.prn
@@ -0,0 +1,31 @@
+﻿CT~~CD,~CC^~CT~
+^XA
+~TA000
+~JSN
+^LT0
+^MNW
+^MTT
+^PON
+^PMN
+^LH0,0
+^JMA
+^PR2,2
+~SD20
+^JUS
+^LRN
+^CI27
+^PA0,1,1,0
+^XZ
+^XA
+^MMT
+^PW378
+^LL213
+^LS0
+^FT36,149^BQN,2,5
+^FH\^FDLA,{PART}^FS
+^FT350,155^A0I,33,35^FH\^CI28^FD{PART}^FS^CI27
+^FT350,109^A0I,33,35^FH\^CI28^FDNum:{SN5}^FS^CI27
+^FT350,65^A0I,33,35^FH\^CI28^FD{DATE}^FS^CI27
+^FT350,28^A0I,33,35^FH\^CI28^FD{TIME}^FS^CI27
+^PQ1,0,1,Y
+^XZ
diff --git a/config/label_templates/st-ten-11/ETA30x16_203dpi.prn b/config/label_templates/st-ten-11/ETA30x16_203dpi.prn
new file mode 100644
index 0000000..4612fb0
--- /dev/null
+++ b/config/label_templates/st-ten-11/ETA30x16_203dpi.prn
@@ -0,0 +1,14 @@
+﻿CT~~CD,~CC^~CT~
+^XA~TA000~JSN^LT0^MNW^MTT^PON^PMN^LH0,0^JMA^PR2,2~SD20^JUS^LRN^CI0^XZ
+^XA
+^MMT
+^PW256
+^LL0144
+^LS0
+^FT148,125^BQN,2,4
+^FH\^FDLA,{PART}^FS
+^FT19,40^A0N,23,21^FH\^FD{PART}^FS
+^FT19,71^A0N,23,21^FH\^FDNum:{SN5}^FS
+^FT19,101^A0N,23,21^FH\^FD{DATE}^FS
+^FT19,126^A0N,23,21^FH\^FD{TIME}^FS
+^PQ1,0,1,Y^XZ
diff --git a/config/label_templates/st-ten-11/ETACL-40_130.prn b/config/label_templates/st-ten-11/ETACL-40_130.prn
new file mode 100644
index 0000000..e445358
--- /dev/null
+++ b/config/label_templates/st-ten-11/ETACL-40_130.prn
@@ -0,0 +1,18 @@
+SIZE 27.5 mm, 50 mm
+GAP 3 mm, 0 mm
+SPEED 2
+DENSITY 7
+DIRECTION 0,0
+REFERENCE 0,0
+OFFSET 0 mm
+SET PEEL OFF
+SET CUTTER OFF
+SET PARTIAL_CUTTER OFF
+SET TEAR ON
+CLS
+DMATRIX 82,230,138,138,x3,22,22,"{RECIPE}-{DD}{MO}{YY}{SN5}"
+CODEPAGE 1252
+TEXT 212,357,"ROMAN.TTF",180,1,7,"{RECIPE}-{DD}{MO}{YY}{SN5}"
+DMATRIX 82,129,138,138,x3,22,22,"{RECIPE}-{DD}{MO}{YY}{SN5}"
+DMATRIX 82,28,138,138,x3,22,22,"{RECIPE}-{DD}{MO}{YY}{SN5}"
+PRINT 1,1
diff --git a/config/label_templates/st-ten-11/ETACL.prn b/config/label_templates/st-ten-11/ETACL.prn
new file mode 100644
index 0000000..e445358
--- /dev/null
+++ b/config/label_templates/st-ten-11/ETACL.prn
@@ -0,0 +1,18 @@
+SIZE 27.5 mm, 50 mm
+GAP 3 mm, 0 mm
+SPEED 2
+DENSITY 7
+DIRECTION 0,0
+REFERENCE 0,0
+OFFSET 0 mm
+SET PEEL OFF
+SET CUTTER OFF
+SET PARTIAL_CUTTER OFF
+SET TEAR ON
+CLS
+DMATRIX 82,230,138,138,x3,22,22,"{RECIPE}-{DD}{MO}{YY}{SN5}"
+CODEPAGE 1252
+TEXT 212,357,"ROMAN.TTF",180,1,7,"{RECIPE}-{DD}{MO}{YY}{SN5}"
+DMATRIX 82,129,138,138,x3,22,22,"{RECIPE}-{DD}{MO}{YY}{SN5}"
+DMATRIX 82,28,138,138,x3,22,22,"{RECIPE}-{DD}{MO}{YY}{SN5}"
+PRINT 1,1
diff --git a/src/ui/recipe_selection/recipe_selection.py b/src/ui/recipe_selection/recipe_selection.py
index 9fc4f1b..d406251 100755
--- a/src/ui/recipe_selection/recipe_selection.py
+++ b/src/ui/recipe_selection/recipe_selection.py
@@ -221,42 +221,42 @@ class Recipe_Selection(Widget):
             },
             "instruction": {},
             "leak_1": {
-                "pre_filling_time": int(row.get("tempo_pre_riempimento", defaults["tempo_pre_riempimento"])),
-                "pre_filling_pressure": int(row.get("pressione_pre_riempimento", defaults["pressione_pre_riempimento"])),
-                "filling_time": int(row.get("tempo_riempimento", defaults["tempo_riempimento"])),
-                "settling_time": int(self.get_def(row, "tempo_assestamento")),
-                "settling_pressure_min_percent": int(
-                    row.get("percentuale_minima_pressione_assestamento", defaults["percentuale_minima_pressione_assestamento"])),
-                "settling_pressure_max_percent": int(
-                    row.get("percentuale_massima_pressione_assestamento", defaults["percentuale_massima_pressione_assestamento"])),
-                "test_time": int(row.get("tempo_di_test", defaults["tempo_di_test"])),
-                "test_pressure_qneg": int(row.get("pressione_di_test_delta_minimo", defaults["pressione_di_test_delta_minimo"])),
-                "test_pressure": int(row.get("pressione_di_test", defaults["pressione_di_test"])),
-                "test_pressure_qpos": int(row.get("pressione_di_test_delta_massimo", defaults["pressione_di_test_delta_massimo"])),
-                "flush_time": int(row.get("tempo_svuotamento", defaults["tempo_svuotamento"])),
-                "flush_pressure": int(row.get("pressione_svuotamento", defaults["pressione_svuotamento"])),
-                "chan_sel": int(row.get("canale_di_prova", defaults["canale_di_prova"])),
-                "ext_flush_time": int(row.get("tempo_svuotamento_esterno", defaults["tempo_svuotamento_esterno"])),
-                "ext_blow_time": int(row.get("tempo_soffiaggio_esterno", defaults["tempo_soffiaggio_esterno"])),
+                "pre_filling_time": int(float(row.get("tempo_pre_riempimento", defaults["tempo_pre_riempimento"]))),
+                "pre_filling_pressure": int(float(row.get("pressione_pre_riempimento", defaults["pressione_pre_riempimento"]))),
+                "filling_time": int(float(row.get("tempo_riempimento", defaults["tempo_riempimento"]))),
+                "settling_time": int(float(self.get_def(row, "tempo_assestamento"))),
+                "settling_pressure_min_percent": int(float(
+                    row.get("percentuale_minima_pressione_assestamento", defaults["percentuale_minima_pressione_assestamento"]))),
+                "settling_pressure_max_percent": int(float(
+                    row.get("percentuale_massima_pressione_assestamento", defaults["percentuale_massima_pressione_assestamento"]))),
+                "test_time": int(float(row.get("tempo_di_test", defaults["tempo_di_test"]))),
+                "test_pressure_qneg": int(float(row.get("pressione_di_test_delta_minimo", defaults["pressione_di_test_delta_minimo"]))),
+                "test_pressure": int(float(row.get("pressione_di_test", defaults["pressione_di_test"]))),
+                "test_pressure_qpos": int(float(row.get("pressione_di_test_delta_massimo", defaults["pressione_di_test_delta_massimo"]))),
+                "flush_time": int(float(row.get("tempo_svuotamento", defaults["tempo_svuotamento"]))),
+                "flush_pressure": int(float(row.get("pressione_svuotamento", defaults["pressione_svuotamento"]))),
+                "chan_sel": int(float(row.get("canale_di_prova", defaults["canale_di_prova"]))),
+                "ext_flush_time": int(float(row.get("tempo_svuotamento_esterno", defaults["tempo_svuotamento_esterno"]))),
+                "ext_blow_time": int(float(row.get("tempo_soffiaggio_esterno", defaults["tempo_soffiaggio_esterno"]))),
             },
             "leak_2": {
-                "pre_filling_time": int(row.get("tempo_pre_riempimento_2", defaults["tempo_pre_riempimento_2"])),
-                "pre_filling_pressure": int(row.get("pressione_pre_riempimento_2", defaults["pressione_pre_riempimento_2"])),
-                "filling_time": int(row.get("tempo_riempimento_2", defaults["tempo_riempimento_2"])),
-                "settling_time": int(row.get("tempo_assestamento_2", defaults["tempo_assestamento_2"])),
-                "settling_pressure_min_percent": int(
-                    row.get("percentuale_minima_pressione_assestamento_2", defaults["percentuale_minima_pressione_assestamento_2"])),
-                "settling_pressure_max_percent": int(
-                    row.get("percentuale_massima_pressione_assestamento_2", defaults["percentuale_massima_pressione_assestamento_2"])),
-                "test_time": int(row.get("tempo_di_test_2", defaults["tempo_di_test_2"])),
-                "test_pressure_qneg": int(row.get("pressione_di_test_delta_minimo_2", defaults["pressione_di_test_delta_minimo_2"])),
-                "test_pressure": int(row.get("pressione_di_test_2", defaults["pressione_di_test_2"])),
-                "test_pressure_qpos": int(row.get("pressione_di_test_delta_massimo_2", defaults["pressione_di_test_delta_massimo_2"])),
-                "flush_time": int(row.get("tempo_svuotamento_2", defaults["tempo_svuotamento_2"])),
-                "flush_pressure": int(row.get("pressione_svuotamento_2", defaults["pressione_svuotamento_2"])),
-                "chan_sel": int(row.get("canale_di_prova_2", defaults["canale_di_prova_2"])),
-                "ext_flush_time": int(row.get("tempo_svuotamento_esterno_2", defaults["tempo_svuotamento_esterno"])),
-                "ext_blow_time": int(row.get("tempo_soffiaggio_esterno_2", defaults["tempo_soffiaggio_esterno"])),
+                "pre_filling_time": int(float(row.get("tempo_pre_riempimento_2", defaults["tempo_pre_riempimento_2"]))),
+                "pre_filling_pressure": int(float(row.get("pressione_pre_riempimento_2", defaults["pressione_pre_riempimento_2"]))),
+                "filling_time": int(float(row.get("tempo_riempimento_2", defaults["tempo_riempimento_2"]))),
+                "settling_time": int(float(row.get("tempo_assestamento_2", defaults["tempo_assestamento_2"]))),
+                "settling_pressure_min_percent": int(float(
+                    row.get("percentuale_minima_pressione_assestamento_2", defaults["percentuale_minima_pressione_assestamento_2"]))),
+                "settling_pressure_max_percent": int(float(
+                    row.get("percentuale_massima_pressione_assestamento_2", defaults["percentuale_massima_pressione_assestamento_2"]))),
+                "test_time": int(float(row.get("tempo_di_test_2", defaults["tempo_di_test_2"]))),
+                "test_pressure_qneg": int(float(row.get("pressione_di_test_delta_minimo_2", defaults["pressione_di_test_delta_minimo_2"]))),
+                "test_pressure": int(float(row.get("pressione_di_test_2", defaults["pressione_di_test_2"]))),
+                "test_pressure_qpos": int(float(row.get("pressione_di_test_delta_massimo_2", defaults["pressione_di_test_delta_massimo_2"]))),
+                "flush_time": int(float(row.get("tempo_svuotamento_2", defaults["tempo_svuotamento_2"]))),
+                "flush_pressure": int(float(row.get("pressione_svuotamento_2", defaults["pressione_svuotamento_2"]))),
+                "chan_sel": int(float(row.get("canale_di_prova_2", defaults["canale_di_prova_2"]))),
+                "ext_flush_time": int(float(row.get("tempo_svuotamento_esterno_2", defaults["tempo_svuotamento_esterno"]))),
+                "ext_blow_time": int(float(row.get("tempo_soffiaggio_esterno_2", defaults["tempo_soffiaggio_esterno"]))),
             },
             "vision": {
                 "recipe": row.get("ricetta_visione", defaults["ricetta_visione"]),
diff --git a/src/ui/recipe_spec_and_step_editor/recipe_spec_and_step_editor.py b/src/ui/recipe_spec_and_step_editor/recipe_spec_and_step_editor.py
index 006c17c..42f22da 100644
--- a/src/ui/recipe_spec_and_step_editor/recipe_spec_and_step_editor.py
+++ b/src/ui/recipe_spec_and_step_editor/recipe_spec_and_step_editor.py
@@ -174,7 +174,7 @@ class Recipe_Spec_And_Step_Editor(Editor):
                 else:
                     self.steps_map[step_name]["spec"] = {}
         if self.crud is not None:
-            self.crud.set_modified()
+            self.crud().set_modified()
         parsed_value=self.parse()
         self.cell_widget().value = parsed_value
         self.reset_steps()
