diff --git a/Dockerfile b/Dockerfile
index 7c95f8ce87a155f6a85c31dfda9b12998bc99403..209a5ac451da90d1ef3388362800d74ab2ab887b 100644
--- a/Dockerfile
+++ b/Dockerfile
@@ -14,7 +14,8 @@ RUN apt install -y \
                 git \
                 sudo \
                 man-db \
-                manpages-posix
+                manpages-posix \
+                arp-scan
 
 RUN sed -i 's:^path-exclude=/usr/share/man:#path-exclude=/usr/share/man:' \
         /etc/dpkg/dpkg.cfg.d/excludes
diff --git a/python/examples/drawing_from_input_drawing.py b/python/examples/drawing_from_input_drawing.py
index b9cbfb743d2c640ed04d28992acd1bf94197ad1e..12314158fba8c230c9c96800db01e5f4137833b9 100644
--- a/python/examples/drawing_from_input_drawing.py
+++ b/python/examples/drawing_from_input_drawing.py
@@ -42,7 +42,7 @@ def getArgs():
     parser.add_argument('--robot-ip', type=str, 
             help="robot's ip address (only needed if running on the real robot)", \
                     default="192.168.1.102")
-    parser.add_argument('--pinocchio-only', action=argparse.BooleanOptionalAction, 
+    parser.add_argument('--pinocchio-only', action=argparse.BooleanOptionalAction, \
             help="whether you want to just integrate with pinocchio.\
                     NOTE: doesn't actually work because it's not a physics simulator", \
                     default=False)
@@ -78,7 +78,7 @@ def getArgs():
             help="the final position error you are happy with. NOTE: not used here", \
             default=1e-3)
     parser.add_argument("--start-from-current-pose", action=argparse.BooleanOptionalAction, \
-            help="if connected to the robot, read the current pose and set it as the initial pose for the robot.
+            help="if connected to the robot, read the current pose and set it as the initial pose for the robot.\
                  very useful and convenient when running simulation before running on real", \
                          default=False)
     parser.add_argument('--tikhonov-damp', type=float, \
diff --git a/python/examples/path_in_pixels.csv b/python/examples/path_in_pixels.csv
index d91143f67c24256355cba65f3f03936bdab840dd..bc9ca0b92fa4d364f9d15e8237f8bd7088e9ac6d 100644
--- a/python/examples/path_in_pixels.csv
+++ b/python/examples/path_in_pixels.csv
@@ -1,105 +1,75 @@
-0.44544,0.71519
-0.44544,0.71519
-0.44544,0.71390
-0.43938,0.71002
-0.43533,0.70614
-0.42724,0.70098
-0.41915,0.69581
-0.38882,0.67125
-0.37466,0.66350
-0.35848,0.65187
-0.34837,0.64282
-0.30792,0.60535
-0.29578,0.59114
-0.27556,0.57434
-0.24118,0.53557
-0.23106,0.52652
-0.22904,0.52265
-0.22500,0.51360
-0.22500,0.51231
-0.22500,0.51231
-0.22500,0.51102
-0.22702,0.50972
-0.23511,0.50456
-0.24320,0.49939
-0.28365,0.49034
-0.29376,0.48776
-0.30792,0.48517
-0.34432,0.48129
-0.36859,0.47742
-0.38882,0.47742
-0.44140,0.47742
-0.45353,0.48000
-0.48792,0.48905
-0.50814,0.49551
-0.66589,0.53428
-0.70836,0.54720
-0.76297,0.56271
-0.87016,0.59760
-0.89645,0.60923
-0.90050,0.61181
-0.90252,0.61310
-0.90252,0.61181
-0.90252,0.61310
-0.90252,0.61440
-0.89847,0.61440
-0.88836,0.61956
-0.88432,0.62086
-0.87016,0.62732
-0.86207,0.62990
-0.82364,0.64282
-0.80949,0.64541
-0.76701,0.65445
-0.74274,0.65833
-0.73061,0.66092
-0.67196,0.66609
-0.64971,0.66996
-0.63960,0.66996
-0.62949,0.67255
-0.60724,0.67513
-0.56275,0.68547
-0.54859,0.68547
-0.50410,0.69968
-0.49803,0.70098
-0.48387,0.70485
-0.48185,0.70485
-0.47174,0.70744
-0.46971,0.70744
-0.46769,0.70744
-0.46567,0.70744
-0.46365,0.70744
-0.45758,0.70744
-0.43938,0.70744
-0.38275,0.70098
-0.36859,0.70098
-0.35848,0.69968
-0.33623,0.69968
-0.33623,0.69839
-0.33421,0.69839
-0.33421,0.69710
-0.33421,0.69581
-0.33623,0.69193
-0.34028,0.68805
-0.35039,0.67772
-0.35241,0.67513
-0.36252,0.66479
-0.40095,0.61569
-0.41511,0.60406
-0.45556,0.54591
-0.46769,0.53169
-0.47780,0.51748
-0.51825,0.45803
-0.53039,0.44382
-0.54050,0.43477
-0.55263,0.41927
-0.56072,0.40764
-0.59713,0.36112
-0.60724,0.35207
-0.62949,0.32881
-0.63151,0.32493
-0.63151,0.32364
-0.63555,0.31976
-0.63555,0.31847
-0.63758,0.31847
-0.63758,0.31847
-0.63758,0.31847
+0.51607,0.68193
+0.51829,0.68193
+0.51829,0.68193
+0.52052,0.68041
+0.52052,0.68041
+0.52052,0.67889
+0.52496,0.67738
+0.52718,0.67586
+0.52940,0.67434
+0.53828,0.66826
+0.54050,0.66674
+0.54272,0.66522
+0.54494,0.66370
+0.55605,0.65155
+0.55827,0.65003
+0.56715,0.64396
+0.56715,0.64244
+0.56715,0.64244
+0.56715,0.64092
+0.56715,0.63940
+0.56715,0.63788
+0.56715,0.63636
+0.56715,0.63636
+0.56715,0.63029
+0.55827,0.62117
+0.55827,0.61966
+0.54939,0.61358
+0.52940,0.59080
+0.52496,0.58624
+0.51829,0.58168
+0.48498,0.55890
+0.47388,0.55434
+0.46721,0.55130
+0.44945,0.54371
+0.41836,0.53459
+0.41169,0.53308
+0.40503,0.53308
+0.38726,0.52548
+0.38726,0.52548
+0.38060,0.52548
+0.37394,0.52548
+0.37394,0.52396
+0.37172,0.52396
+0.36950,0.52396
+0.36950,0.52396
+0.36950,0.52548
+0.36950,0.52548
+0.36950,0.53004
+0.37172,0.53156
+0.37616,0.54219
+0.38060,0.54675
+0.38504,0.55586
+0.38948,0.56497
+0.40503,0.59991
+0.40947,0.60447
+0.41836,0.61358
+0.43612,0.64852
+0.43834,0.65307
+0.44278,0.66370
+0.46499,0.68801
+0.46944,0.69712
+0.47388,0.70168
+0.47832,0.71231
+0.49164,0.72598
+0.49831,0.73661
+0.50719,0.74269
+0.51607,0.75332
+0.52052,0.75788
+0.52274,0.75940
+0.52496,0.76092
+0.52496,0.76244
+0.52718,0.76244
+0.52718,0.76396
+0.52718,0.76396
+0.52718,0.76396
diff --git a/python/examples/point_impedance_control.py b/python/examples/point_impedance_control.py
index fb58d87f764c76ce6b7f5f9a809be5a2e16f56ac..e09487350efbfea204dc9b262177625db2344a6f 100644
--- a/python/examples/point_impedance_control.py
+++ b/python/examples/point_impedance_control.py
@@ -72,7 +72,7 @@ def getArgs():
             default=1e-3)
     # TODO: test the interaction of this and the overall demo
     parser.add_argument("--start-from-current-pose", action=argparse.BooleanOptionalAction, \
-            help="if connected to the robot, read the current pose and set it as the initial pose for the robot.
+            help="if connected to the robot, read the current pose and set it as the initial pose for the robot. \
                  very useful and convenient when running simulation before running on real", \
                          default=False)
     parser.add_argument('--tikhonov-damp', type=float, \
diff --git a/python/ur_simple_control/__pycache__/managers.cpython-312.pyc b/python/ur_simple_control/__pycache__/managers.cpython-312.pyc
index b7c269db67426979fe7f362c0ef01a1ff2715e03..ac78c9ecfbfb2b36f7db8dfd8b9ca6621c026c2d 100644
Binary files a/python/ur_simple_control/__pycache__/managers.cpython-312.pyc and b/python/ur_simple_control/__pycache__/managers.cpython-312.pyc differ
diff --git a/python/ur_simple_control/basics/__pycache__/basics.cpython-312.pyc b/python/ur_simple_control/basics/__pycache__/basics.cpython-312.pyc
index a907dd1917993fe0c168898bc788a4aa7abd34c3..6d6ee6502c796e5009f143ec1dc9030248ebc7b0 100644
Binary files a/python/ur_simple_control/basics/__pycache__/basics.cpython-312.pyc and b/python/ur_simple_control/basics/__pycache__/basics.cpython-312.pyc differ
diff --git a/python/ur_simple_control/clik/__pycache__/clik_trajectory_following.cpython-312.pyc b/python/ur_simple_control/clik/__pycache__/clik_trajectory_following.cpython-312.pyc
index d900eed3d1c0b5d9a5e328f65abf299bf57f1759..d9dbfe9f04563a9582b17f077410172d86db78d4 100644
Binary files a/python/ur_simple_control/clik/__pycache__/clik_trajectory_following.cpython-312.pyc and b/python/ur_simple_control/clik/__pycache__/clik_trajectory_following.cpython-312.pyc differ
diff --git a/python/ur_simple_control/clik/clik_trajectory_following.py b/python/ur_simple_control/clik/clik_trajectory_following.py
index eae999f69fee0c5a9a82fc99adfac03976054ae1..96908e43201fee762a344848d0aac3c193121aeb 100644
--- a/python/ur_simple_control/clik/clik_trajectory_following.py
+++ b/python/ur_simple_control/clik/clik_trajectory_following.py
@@ -44,6 +44,7 @@ def map2DPathTo3DPlane(path_2D, width, height):
 
 
 def clikCartesianPathIntoJointPath(path, args, robot, \
+        clikController, q_init, R, p):
     """
     clikCartesianPathIntoJointPath
     ------------------------------
@@ -80,7 +81,6 @@ def clikCartesianPathIntoJointPath(path, args, robot, \
       --> you can movej to it before executing the trajectory,
          so this makes perfect sense to ensure correctness
     """
-        clikController, q_init, R, p):
 
     transf_body_to_task_frame = pin.SE3(R, p)
     q = copy.deepcopy(q_init)
diff --git a/python/ur_simple_control/managers.py b/python/ur_simple_control/managers.py
index 824920001c76b7f3fe8df5dececb1087bf7cf2c4..b8d1f2d0040d9efd1f380d90589a53ec04846098 100644
--- a/python/ur_simple_control/managers.py
+++ b/python/ur_simple_control/managers.py
@@ -440,7 +440,8 @@ class RobotManager:
             q.append(0.0)
             q = np.array(q)
             self.q = q
-            self.manipulator_visualizer_queue.put(q)
+            if args.visualize_manipulator:
+                self.manipulator_visualizer_queue.put(q)
 
 
         # do it once to get T_w_e
@@ -749,7 +750,7 @@ class RobotManager:
         if self.gripper is None:
             if self.args.debug_prints:
                 print("you didn't select a gripper (no gripper is the default parameter) so no gripping for you")
-            pass
+            return
         if (not self.args.simulation) and (not self.args.pinocchio_only):
             self.gripper.open()
         else:
@@ -759,7 +760,7 @@ class RobotManager:
         if self.gripper is None:
             if self.args.debug_prints:
                 print("you didn't select a gripper (no gripper is the default parameter) so no gripping for you")
-            pass
+            return
         if (not self.args.simulation) and (not self.args.pinocchio_only):
             self.gripper.close()
         else: