diff --git a/src/Model/Geometry/Reach.py b/src/Model/Geometry/Reach.py
index dad47caac0db3bdc792290b87dbb34f8d19b424f..b67ba0a66dd0023fdbab7bf38d8241ee1c83baa3 100644
--- a/src/Model/Geometry/Reach.py
+++ b/src/Model/Geometry/Reach.py
@@ -247,7 +247,7 @@ class Reach:
                         self._guidelines[k],
                     )
                 ),
-                # Get only guide lines if FULL False
+                # Get only guide lines if FULL is False
                 self._guidelines if full else filter(
                     lambda x: x in self._complete_guidelines,
                     self._guidelines
diff --git a/src/View/Geometry/GeometryWindow.py b/src/View/Geometry/GeometryWindow.py
index 3a3574c864bef4f90d6a17072774be7e73d82376..57677ccef5bb2b177d536d563feb9baa217725a4 100644
--- a/src/View/Geometry/GeometryWindow.py
+++ b/src/View/Geometry/GeometryWindow.py
@@ -43,8 +43,8 @@ class GeometryWindow(QMainWindow, WindowToolKit):
 
         self.setup_window()
         self.setup_model()
+        self.setup_plots()
         self.setup_connections()
-        self.setup_plot()
         self.changed_slider_value()
 
     def setup_window(self):
@@ -58,7 +58,7 @@ class GeometryWindow(QMainWindow, WindowToolKit):
         self.tableView.setModel(self._tablemodel)
         self.tableView.setItemDelegate(qtableview_reach.Delegate())
 
-    def setup_plot(self):
+    def setup_plots(self):
         if self._reach.number_profiles != 0:
             self.graphic_1()
             self.graphic_2()
@@ -86,14 +86,14 @@ class GeometryWindow(QMainWindow, WindowToolKit):
                       .connect(self.select_current_profile)
 
         # Update plot when profile data change
-        self._tablemodel.dataChanged.connect(self.update_graphic_1)
-        self._tablemodel.dataChanged.connect(self.update_graphic_2)
-        self.tableView.selectionModel()\
-                      .selectionChanged\
-                      .connect(self.update_graphic_1)
-        self.tableView.selectionModel()\
-                      .selectionChanged\
-                      .connect(self.update_graphic_2)
+        # self._tablemodel.dataChanged.connect(self.update_graphic_1)
+        # self._tablemodel.dataChanged.connect(self.update_graphic_2)
+        # self.tableView.selectionModel()\
+        #               .selectionChanged\
+        #               .connect(self.update_graphic_1)
+        # self.tableView.selectionModel()\
+        #               .selectionChanged\
+        #               .connect(self.update_graphic_2)
 
     def open_file_dialog(self):
         options = QFileDialog.Options()
@@ -249,41 +249,45 @@ class GeometryWindow(QMainWindow, WindowToolKit):
         self.x_complete = self._reach.get_guidelines_x()
         self.y_complete = self._reach.get_guidelines_y()
 
-        self.line_gl_1 = self.ui.canvas_1.axes.plot(
-            self.x_complete,
-            self.y_complete
-        )
+        self.line_gl_1 = [
+            self.ui.canvas_1.axes.plot(
+                x, y,
+            )
+            for x, y in zip(self.x_complete, self.y_complete)
+        ]
 
+        # Current profile
         self.plot_selected_1, = self.ui.canvas_1.axes.plot(
             self._reach.profile(0).x(),
             self._reach.profile(0).y(),
             lw=1., markersize=3,
             marker='+', color="b"
         )
-
         self.plot_selected_1.set_visible(False)
+
+        # Previous profile
         self.before_plot_selected_1, = self.ui.canvas_1.axes.plot(
             self._reach.profile(0).x(),
             self._reach.profile(0).y(),
             lw=1., markersize=3,
             marker='+', color="k", linestyle="--"
         )
-
         self.before_plot_selected_1.set_visible(False)
 
+        # Next profile
         self.after_plot_selected_1, = self.ui.canvas_1.axes.plot(
             self._reach.profile(0).x(),
             self._reach.profile(0).y(),
             lw=1., markersize=3,
             marker='+', color="m", linestyle='--'
         )
-
         self.after_plot_selected_1.set_visible(False)
 
         self.ui.canvas_1.figure.tight_layout()
         self.ui.canvas_1.figure.canvas.draw_idle()
         self.ui.toolbar_1.update()
 
+    @timer
     def graphic_2(self):
         self.tableView.model().blockSignals(True)
 
@@ -352,6 +356,7 @@ class GeometryWindow(QMainWindow, WindowToolKit):
         self.ui.canvas_2.figure.canvas.draw_idle()
         self.ui.toolbar_2.update()
 
+    @timer
     def update_graphic_1(self):
         self.tableView.model().blockSignals(True)
 
@@ -361,6 +366,9 @@ class GeometryWindow(QMainWindow, WindowToolKit):
                 self._reach.profile(ind).y()
             )
 
+        self.x_complete = self._reach.get_guidelines_x()
+        self.y_complete = self._reach.get_guidelines_y()
+
         for i in range(len(self.line_gl_1)):
             self.line_gl_1[i].set_data(
                 [x[i] for x in self.x_complete],
@@ -370,6 +378,7 @@ class GeometryWindow(QMainWindow, WindowToolKit):
         self.tableView.model().blockSignals(False)
         self.ui.canvas_1.figure.canvas.draw_idle()
 
+    @timer
     def update_graphic_2(self):
         self.tableView.model().blockSignals(True)
 
@@ -398,6 +407,7 @@ class GeometryWindow(QMainWindow, WindowToolKit):
         self.ui.canvas_2.axes.autoscale_view(True, True, True)
         self.ui.canvas_2.figure.canvas.draw_idle()
 
+    @timer
     def graphic_3(self):
         self.tableView.model().blockSignals(True)
 
@@ -444,7 +454,7 @@ class GeometryWindow(QMainWindow, WindowToolKit):
         self.annotation_3 = []
         self.complete_gl, self.incomplete_gl = self._reach.compute_guidelines()
 
-        line_2d = [[line_2D] for line_2D in self.line_gl_1]
+        line_2d = [line_2D for line_2D in self.line_gl_1]
         self.color_complete_gl = self.get_line_gl_colors(line_2d)
         self.color_incomplete_gl = 2 * ["#000000"]
 
@@ -499,6 +509,7 @@ class GeometryWindow(QMainWindow, WindowToolKit):
         self.ui.canvas_3.figure.canvas.draw_idle()
         self.ui.toolbar_3.update()
 
+    @timer
     def update_annotate_3(self, ind: int):
         self.tableView.model().blockSignals(True)
 
@@ -569,6 +580,7 @@ class GeometryWindow(QMainWindow, WindowToolKit):
     def get_elevation(self, ind: int):
         return self._reach.profile(ind).z()
 
+    @timer
     def update_graphic_3(self, ind: int):
         self.tableView.model().blockSignals(True)
 
diff --git a/src/tools.py b/src/tools.py
index 285a49d4a25d6a03d87496229185afc4a4d958aa..b53c6f6f49ae5053f67644163c0c6ce8efd841b9 100644
--- a/src/tools.py
+++ b/src/tools.py
@@ -34,7 +34,11 @@ def timer(func):
     def wrapper(*args, **kwargs):
         start_time = time.perf_counter()
 
-        value = func(*args, **kwargs)
+        value = None
+        try:
+            value = func(*args, **kwargs)
+        except Exception as e:
+            print(f"{e}")
 
         end_time = time.perf_counter()
         run_time = end_time - start_time