diff --git a/pyproject.toml b/pyproject.toml
index f1bcf3f30582ee78539c9c3286a8e830b7682f17..1b941f9ea10f6dceee93aa7d049284b891bdc703 100644
--- a/pyproject.toml
+++ b/pyproject.toml
@@ -1,6 +1,6 @@
 [project]
 name = "lasercontrol"
-version = "0.1.3"
+version = "1.0.0"
 authors = [
   { name="Christoph Schmidt", email="cschmidt.fs@gmail.com" },
 ]
diff --git a/requirements.txt b/requirements.txt
index 26f4276f942a6616c00d51a581e6aea827b1c6dd..afebb0b95d269587aea7bac9760be69b8958af1d 100644
--- a/requirements.txt
+++ b/requirements.txt
@@ -7,12 +7,12 @@ rich
 pyyaml
 
 # add the git repo
-#git+https://gitlab.tugraz.at/flexsensor-public/captdevicecontrol.git@develop
+git+https://gitlab.tugraz.at/flexsensor-public/captdevicecontrol.git@develop
 git+https://gitlab.tugraz.at/flexsensor-public/modules/fswidgets.git@develop
 git+https://gitlab.tugraz.at/flexsensor-public/modules/confighandler.git@develop
 git+https://gitlab.tugraz.at/flexsensor-public/modules/cmp.git@develop
 
 # Local installs
 #../confighandler
-../captdevicecontrol
+#../captdevicecontrol
 #../modules/cmp
diff --git a/src/LaserControl/__init__.py b/src/LaserControl/__init__.py
index 0b350c9c4fef32817d101c7ecff34188db259313..7acaf6ab228ebfac9d6a2fb7db7ca8a4b0b16eb0 100644
--- a/src/LaserControl/__init__.py
+++ b/src/LaserControl/__init__.py
@@ -1,23 +1,10 @@
-import logging
 import os
 import sys
 
-from rich.logging import RichHandler
-
-
-# check if a handler is already set
-#if not logging.root.handlers:
-#    FORMAT = "%(name)s %(message)s"
-#    logging.basicConfig(
-#        level="DEBUG", format=FORMAT, datefmt="[%X]", handlers=[
-#            RichHandler(rich_tracebacks=True)
-#        ]
-#    )
-
 sys.path.append(os.path.join(os.path.dirname(__file__), '../'))
 
 
-from .controller.LaserControlController import LaserControlController as Controller
+from .controller.LaserDeviceControl import MPLaserDeviceControl as Controller
 from .model.LaserControlModel import LaserControlModel as Model
 from .view.LaserControlView import LaserControlView as View
 from .LaserConfig import LaserConfig as Config
\ No newline at end of file
diff --git a/src/LaserControl/controller/LaserCon.py b/src/LaserControl/controller/LaserCon.py
index 15e240651e9ff3266590cd76d6bce32d09dbcc72..33606064a594b2e6bbaf94e93c99d02ce49d65ed 100644
--- a/src/LaserControl/controller/LaserCon.py
+++ b/src/LaserControl/controller/LaserCon.py
@@ -5,14 +5,10 @@ import sys
 import tempfile
 from contextlib import contextmanager
 
-from PySide6.QtWidgets import QFileDialog, QApplication
 from rich.logging import RichHandler
 
 from LaserControl.controller.ErrorConverter import ErrorConverter
 
-
-
-
 if os.getenv("LASER_SIM") == "TRUE":
     from LaserControl.libs.LaserLibSimulator import LaserLibSimulator as LaserLib
 else:
diff --git a/src/LaserControl/controller/LaserControlController.py b/src/LaserControl/controller/LaserControlController.py
deleted file mode 100644
index 452db943263ada9042ce46be35cd6e8e2ba7d2bb..0000000000000000000000000000000000000000
--- a/src/LaserControl/controller/LaserControlController.py
+++ /dev/null
@@ -1,177 +0,0 @@
-import logging
-import time
-from multiprocessing import Value, Lock, Process
-
-from PySide6.QtCore import QThreadPool
-
-from LaserControl.controller.multiprocess.MPLaserDeviceControl import MPLaserDeviceControl
-from LaserControl.model.LaserControlModel import LaserControlModel
-
-import CaptDeviceControl as captdev
-
-
-class LaserControlController:
-
-    def __init__(self, model: LaserControlModel, start_capture_flag: Value = None):
-
-        self.logger = logging.Logger("Laser Driver (Generic)")
-
-        self.model = model
-
-        # Multiprocess variables
-        # self.proc: Process = None
-        self.lock = Lock()
-        # self._laser_port = Value('i', 0, lock=self.lock)
-        # self._laser_connected_flag = Value('i', False, lock=self.lock)
-
-        self._laser_moving_flag = Value('i', False, lock=self.lock)
-        self._laser_finished_flag = Value('i', False, lock=self.lock)
-
-        # if self.model.capturing_device is None or not self.model.capturing_device_connected:
-        if start_capture_flag is not None:
-            self._start_capture_flag = start_capture_flag
-        else:
-            self._start_capture_flag = Value('i', False, lock=self.lock)
-
-        # self._current_wavelength = Value('f', 0.0, lock=self.lock)
-
-        # self._laser_state = Value(LaserStateArray, (False, False, False, 0, 0, 0), lock=self.lock)
-
-        # For the sweep
-        # self.laser_at_start_position_flag = Value('i', False, lock=self.lock)
-        # self.laser_at_end_position_flag = Value('i', False, lock=self.lock)
-
-        # Threads for acquiring data from the process
-        # self.thread_manager = QThreadPool()
-        self.mp_laser_controller = MPLaserDeviceControl(None,
-                                                        self._laser_moving_flag,
-                                                        self._laser_finished_flag,
-                                                        self._start_capture_flag,
-                                                        enable_logging=False)
-
-        self.mp_laser_controller.get_connected_finished.connect(
-            lambda x: type(self.model).connected.fset(self.model, bool(x)))
-
-        self.mp_laser_controller.get_current_wavelength_finished.connect(
-            lambda x: type(self.model).current_wavelength.fset(self.model, x))
-
-        self.mp_laser_controller.get_min_wavelength_finished.connect(
-            lambda x: type(self.model).min_laser_wavelength.fset(self.model, x))
-
-        self.mp_laser_controller.get_max_wavelength_finished.connect(
-            lambda x: type(self.model).max_laser_wavelength.fset(self.model, x))
-
-        self.mp_laser_controller.get_velocity_finished.connect(
-            lambda x: type(self.model).velocity.fset(self.model, x))
-
-        self.mp_laser_controller.get_acceleration_finished.connect(
-            lambda x: type(self.model).acceleration.fset(self.model, x))
-
-        self.mp_laser_controller.get_deceleration_finished.connect(
-            lambda x: type(self.model).deceleration.fset(self.model, x))
-
-        self.mp_laser_controller.move_to_wavelength_finished.connect(self._move_to_wavelength_finished)
-
-        self.mp_laser_controller.laser_is_moving_changed.connect(self._laser_is_moving_changed)
-        self.mp_laser_controller.movement_finished_changed.connect(self._laser_movement_finished)
-
-        self.kill_thread = False
-
-    def connect_capture_device(self, device: captdev.Controller):
-        self.logger.info(
-            "***********************************************Connecting to capture device..***********************************")
-        self.mp_laser_controller.mp_read_laser_settings(self.model.port)
-        if isinstance(device, captdev.Controller):
-            self.model.capturing_device = device
-            self.model.capturing_device.model.device_information.signals.device_connected_changed.connect(
-                lambda x: type(self.model).capturing_device_connected.fset(self.model, x)
-            )
-
-    def connect_device(self):
-        self.logger.info("Connecting to laser...")
-        self.mp_laser_controller.mp_read_laser_settings(self.model.port)
-
-    def _move_to_wavelength_finished(self, wavelength: float):
-        self.logger.info(f"Move to wavelength finished. Current wavelength: {wavelength}")
-
-    def _laser_is_moving_changed(self, is_moving: bool, to_wavelength: float):
-        self.logger.info(f"************** Laser is moving: {is_moving}."
-                         f"Moving to {self.model.laser_moving_to_wavelength} nm")
-        self.model.laser_is_moving = (is_moving, to_wavelength)
-        self.logger.info(f"************** Laser is moving: {is_moving}."
-                         f"Moving to {self.model.laser_moving_to_wavelength} nm")
-
-    def _laser_movement_finished(self, is_finished: bool):
-        pass
-
-    # def _monitor_laser_state(self):
-    #     while not self.kill_thread:
-    #         self.model.connected = bool(self._laser_connected_flag.value)
-    #         self.model.laser_is_moving = bool(self._laser_moving_flag.value)
-    #         self.model.laser_at_position = bool(self._laser_finished_flag.value)
-    #         self.model.current_wavelength = float(self._current_wavelength.value)
-    #         #print(self._laser_state.connected)
-    #         #print("Monitor")
-    #         time.sleep(0.1)
-    #     self.logger.info("Monitor Laser State Thread Ended")
-    #     # Reset the flag
-    #     self._laser_finished_flag.value = False
-
-    # def read_laser_settings(self):
-    #     self.logger.info("Reading laser settings...")
-    #     with LaserCon() as con:
-    #         self.model.connected = con.connected
-    #         self.model.min_laser_wavelength = con.min_wavelength
-    #         self.model.max_laser_wavelength = con.max_wavelength
-    #         self.model.current_wavelength = con.current_wavelength
-    #         self.model.velocity = con.velocity
-    #         self.model.acceleration = con.acceleration
-    #
-    #
-    #     self.model.connected = False
-
-    def start_wavelength_sweep(self, start_wavelength: float = None, stop_wavelength: float = None) -> None:
-        # self.capt_device.clear_data()
-        # Reset the flag
-        # self.capt_device.model.capturing_finished = False
-        self.logger.info(f"Starting wavelength sweep from {start_wavelength} to {stop_wavelength}")
-        if self.model.capturing_device is not None:
-            self.model.capturing_device.reset_capture()
-            if not self.model.capturing_device.model.device_information.device_connected:
-                self.model.capturing_device.open_device()
-                self.model.capturing_device.ready_for_recording_changed.connect(
-                    lambda ready: self.start_wavelength_sweep_emitted(start_wavelength, stop_wavelength, ready=ready)
-                )
-            self.logger.info("Capturing device is connected.")
-
-            if self.model.capturing_device.model.capturing_information.ready_for_recording:
-                self.start_wavelength_sweep_emitted(start_wavelength, stop_wavelength)
-
-
-        else:
-            self.start_wavelength_sweep_emitted(start_wavelength, stop_wavelength)
-
-    def start_wavelength_sweep_emitted(self, start_wavelength: float = None, stop_wavelength: float = None, ready=True):
-        if ready:
-            if start_wavelength is None:
-                start_wavelength = self.model.sweep_start_wavelength
-            if stop_wavelength is None:
-                stop_wavelength = self.model.sweep_stop_wavelength
-            self.mp_laser_controller.wavelength_sweep(self.model.port, start_wavelength, stop_wavelength)
-
-    def move_to_wavelength(self, wavelength: float) -> None:
-        self.logger.info(f"Move to wavelength {wavelength}")
-        self.mp_laser_controller.move_to_wavelength(self.model.port, wavelength)
-
-    def stop_process(self):
-        time_start = time.time()
-        # if self.proc is not None:
-        #    while self.proc.is_alive():
-        #        time.sleep(0.1)
-        #    self.logger.warning(f"Laser process exited after {time.time() - time_start}s")
-        self.kill_thread = True
-
-    def __del__(self):
-        self.logger.info("Exiting Laser controller")
-        self.stop_process()
-        self.logger.warning("Laser controller exited")
diff --git a/src/LaserControl/controller/LaserDeviceControl.py b/src/LaserControl/controller/LaserDeviceControl.py
new file mode 100644
index 0000000000000000000000000000000000000000..ea5e49a3cb79b5ad8e3b074cc90897e5046a0d71
--- /dev/null
+++ b/src/LaserControl/controller/LaserDeviceControl.py
@@ -0,0 +1,171 @@
+import logging
+from multiprocessing import Value, Lock
+
+import CaptDeviceControl as captdev
+import cmp
+from PySide6.QtCore import Signal
+from cmp.CProcessControl import CProcessControl
+
+from LaserControl.controller.multiprocess.MPLaserDevice import MPLaserDevice
+from LaserControl.model.LaserControlModel import LaserControlModel
+
+
+class MPLaserDeviceControl(CProcessControl):
+    get_connected_finished = Signal(bool, name='get_connected_finished')
+    get_current_wavelength_finished = Signal(float, name='get_current_wavelength_finished')
+    get_min_wavelength_finished = Signal(float, name='get_min_wavelength_finished')
+    get_max_wavelength_finished = Signal(float, name='get_max_wavelength_finished')
+    get_velocity_finished = Signal(float, name='get_velocity_finished')
+    get_acceleration_finished = Signal(float, name='get_acceleration_finished')
+    get_deceleration_finished = Signal(float, name='get_deceleration_finished')
+    mp_read_laser_settings_finished = Signal(name='mp_read_laser_settings_finished')
+
+    move_to_wavelength_finished = Signal(float, name='move_to_wavelength_finished')
+    wavelength_sweep_finished = Signal(float, float, name='wavelength_sweep_finished')
+
+    laser_is_moving_changed = Signal(bool, float, name='laser_is_moving_changed')
+    movement_finished_changed = Signal(bool, name='movement_finished_changed')
+
+    def __init__(self, model: LaserControlModel,
+                 start_capture_flag: Value,
+                 internal_log_level=logging.WARNING,
+                 internal_log=True,
+                 log_file=None):
+        super().__init__(internal_log_level=internal_log_level, internal_log=internal_log, log_file=log_file)
+
+        self.model = model
+
+        self.lock = Lock()
+        self._laser_moving_flag = Value('i', False, lock=self.lock)
+        self._laser_finished_flag = Value('i', False, lock=self.lock)
+
+        self.register_child_process(MPLaserDevice,
+                                    self._laser_moving_flag,
+                                    self._laser_finished_flag,
+                                    start_capture_flag)
+
+
+        self.get_connected_finished.connect(
+            lambda x: type(self.model).connected.fset(self.model, bool(x)))
+
+        self.get_current_wavelength_finished.connect(
+            lambda x: type(self.model).current_wavelength.fset(self.model, x))
+
+        self.get_min_wavelength_finished.connect(
+            lambda x: type(self.model).min_laser_wavelength.fset(self.model, x))
+
+        self.get_max_wavelength_finished.connect(
+            lambda x: type(self.model).max_laser_wavelength.fset(self.model, x))
+
+        self.get_velocity_finished.connect(
+            lambda x: type(self.model).velocity.fset(self.model, x))
+
+        self.get_acceleration_finished.connect(
+            lambda x: type(self.model).acceleration.fset(self.model, x))
+
+        self.get_deceleration_finished.connect(
+            lambda x: type(self.model).deceleration.fset(self.model, x))
+
+        self.move_to_wavelength_finished.connect(self._move_to_wavelength_finished)
+
+        self.laser_is_moving_changed.connect(self._laser_is_moving_changed)
+        self.movement_finished_changed.connect(self._laser_movement_finished)
+
+        self.kill_thread = False
+
+    def set_start_capture_flag(self, start_capture_flag: Value):
+        self._start_capture_flag = start_capture_flag
+
+    @cmp.CProcessControl.register_function(get_connected_finished)
+    def get_connected(self):
+        self._internal_logger.info("Reading current connection state from process.")
+
+    @cmp.CProcessControl.register_function(get_current_wavelength_finished)
+    def get_current_wavelength(self):
+        self._internal_logger.info("Reading current wavelength from process.")
+
+    @cmp.CProcessControl.register_function(get_min_wavelength_finished)
+    def get_min_wavelength(self):
+        self._internal_logger.info("Reading minimum wavelength from process.")
+
+    @cmp.CProcessControl.register_function(get_max_wavelength_finished)
+    def get_max_wavelength(self):
+        self._internal_logger.info("Reading maximum wavelength from process.")
+
+    @CProcessControl.register_function(get_velocity_finished)
+    def get_velocity(self):
+        self._internal_logger.info("Reading velocity from process.")
+
+    @cmp.CProcessControl.register_function(get_acceleration_finished)
+    def get_acceleration(self):
+        self._internal_logger.info("Reading acceleration from process.")
+
+    @cmp.CProcessControl.register_function(get_deceleration_finished)
+    def get_deceleration(self):
+        self._internal_logger.info("Reading deceleration from process.")
+
+    @cmp.CProcessControl.register_function(mp_read_laser_settings_finished)
+    def mp_read_laser_settings(self, usb_port: str):
+        self._internal_logger.info(f"Reading laser settings from process using {usb_port}")
+
+    @cmp.CProcessControl.register_function(move_to_wavelength_finished)
+    def move_to_wavelength(self, usb_port: str, wavelength: float):
+        print(f"Moving laser ({usb_port}) to wavelength {wavelength} from process")
+
+    @cmp.CProcessControl.register_function(wavelength_sweep_finished)
+    def wavelength_sweep(self, usb_port: str, wavelength_start: float, wavelength_end: float):
+        print(f"Sweeping laser ({usb_port}): Wavelength {wavelength_start} - {wavelength_end} from process")
+
+    # ==================================================================================================================
+    #
+    # ==================================================================================================================
+    def connect_capture_device(self, device: captdev.Controller):
+        self.logger.info(
+            "***********************************************Connecting to capture device..***********************************")
+        self.mp_read_laser_settings(self.model.port)
+        if isinstance(device, captdev.Controller):
+            self.model.capturing_device = device
+            self.model.capturing_device.model.device_information.signals.device_connected_changed.connect(
+                lambda x: type(self.model).capturing_device_connected.fset(self.model, x)
+            )
+
+    def _move_to_wavelength_finished(self, wavelength: float):
+        self.logger.info(f"Move to wavelength finished. Current wavelength: {wavelength}")
+
+    def _laser_is_moving_changed(self, is_moving: bool, to_wavelength: float):
+        self.logger.info(f"************** Laser is moving: {is_moving}."
+                         f"Moving to {self.model.laser_moving_to_wavelength} nm")
+        self.model.laser_is_moving = (is_moving, to_wavelength)
+        self.logger.info(f"************** Laser is moving: {is_moving}."
+                         f"Moving to {self.model.laser_moving_to_wavelength} nm")
+
+    def _laser_movement_finished(self, is_finished: bool):
+        pass
+
+    def start_wavelength_sweep(self, start_wavelength: float = None, stop_wavelength: float = None) -> None:
+        # self.capt_device.clear_data()
+        # Reset the flag
+        # self.capt_device.model.capturing_finished = False
+        self.logger.info(f"Starting wavelength sweep from {start_wavelength} to {stop_wavelength}")
+        if self.model.capturing_device is not None:
+            self.model.capturing_device.reset_capture()
+            if not self.model.capturing_device.model.device_information.device_connected:
+                #self.model.
+                self.model.capturing_device.open_device()
+                self.model.capturing_device.ready_for_recording_changed.connect(
+                    lambda ready: self.start_wavelength_sweep_emitted(start_wavelength, stop_wavelength, ready=ready)
+                )
+            self.logger.info("Capturing device is connected.")
+
+            if self.model.capturing_device.model.capturing_information.ready_for_recording:
+                self.start_wavelength_sweep_emitted(start_wavelength, stop_wavelength)
+        else:
+            self.start_wavelength_sweep_emitted(start_wavelength, stop_wavelength)
+
+    def start_wavelength_sweep_emitted(self, start_wavelength: float = None, stop_wavelength: float = None, ready=True):
+        if ready:
+            if start_wavelength is None:
+                start_wavelength = self.model.sweep_start_wavelength
+            if stop_wavelength is None:
+                stop_wavelength = self.model.sweep_stop_wavelength
+            self.wavelength_sweep(self.model.port, start_wavelength, stop_wavelength)
\ No newline at end of file
diff --git a/src/LaserControl/controller/multiprocess/LaserStateMPSetter.py b/src/LaserControl/controller/multiprocess/LaserStateMPSetter.py
index bb6490be1243794941829c6b31852bdc855ef037..e8ac59986f51bf5f2867c6204811f1ee1cf6fb55 100644
--- a/src/LaserControl/controller/multiprocess/LaserStateMPSetter.py
+++ b/src/LaserControl/controller/multiprocess/LaserStateMPSetter.py
@@ -1,6 +1,3 @@
-from ctypes import c_int, c_byte
-
-
 class LaserState:
     def __init__(self):
         # Multiprocessing Information
diff --git a/src/LaserControl/controller/multiprocess/MPLaserDevice.py b/src/LaserControl/controller/multiprocess/MPLaserDevice.py
index 1f1e9e37c019ded968b3f8e9d56ab2a515b7f1e4..ed62274071e6159b2331d588f2cc2517e92e3ed8 100644
--- a/src/LaserControl/controller/multiprocess/MPLaserDevice.py
+++ b/src/LaserControl/controller/multiprocess/MPLaserDevice.py
@@ -1,7 +1,6 @@
-import logging
-import os
 import time
 from multiprocessing import Value
+
 import cmp
 
 from LaserControl.controller.LaserCon import LaserCon
@@ -10,18 +9,15 @@ from LaserControl.controller.LaserCon import LaserCon
 class MPLaserDevice(cmp.CProcess):
 
     def __init__(self, state_queue, cmd_queue,
-
                  laser_moving_flag: Value,
                  laser_finished_flag: Value,
                  start_capture_flag: Value,
                  kill_flag: Value,
-                 internal_log, internal_log_level):
+                 internal_log, internal_log_level, log_file):
         super().__init__(state_queue, cmd_queue,
                          kill_flag=kill_flag,
-                         internal_log=internal_log,
-                         internal_log_level=internal_log_level,)
+                         internal_log=internal_log, internal_log_level=internal_log_level, log_file=log_file)
 
-        self.logger, self.ha = None, None
         # if not self.logger.handlers:
         #     self.logger.setLevel(level=logging.DEBUG)
         # self.logger.disabled = False
@@ -32,8 +28,6 @@ class MPLaserDevice(cmp.CProcess):
         self.laser_finished_flag = laser_finished_flag
         self.start_capture_flag = start_capture_flag
 
-    def init_loggers(self):
-        self.logger, self.ha = self.create_new_logger(f"{self.__class__.__name__}/({os.getpid()})")
 
     def wrap_func(self, func, con: LaserCon = None, usb_port: str = None):
         res = None
diff --git a/src/LaserControl/controller/multiprocess/MPLaserDeviceControl.py b/src/LaserControl/controller/multiprocess/MPLaserDeviceControl.py
deleted file mode 100644
index bc373a7f283a74722ced4ab0aaaca40615a8e74c..0000000000000000000000000000000000000000
--- a/src/LaserControl/controller/multiprocess/MPLaserDeviceControl.py
+++ /dev/null
@@ -1,80 +0,0 @@
-import logging
-from multiprocessing import Value
-
-import cmp
-from PySide6.QtCore import Signal
-from cmp.CProcessControl import CProcessControl
-
-from LaserControl.controller.multiprocess.MPLaserDevice import MPLaserDevice
-
-
-class MPLaserDeviceControl(CProcessControl):
-    get_connected_finished = Signal(bool, name='get_connected_finished')
-    get_current_wavelength_finished = Signal(float, name='get_current_wavelength_finished')
-    get_min_wavelength_finished = Signal(float, name='get_min_wavelength_finished')
-    get_max_wavelength_finished = Signal(float, name='get_max_wavelength_finished')
-    get_velocity_finished = Signal(float, name='get_velocity_finished')
-    get_acceleration_finished = Signal(float, name='get_acceleration_finished')
-    get_deceleration_finished = Signal(float, name='get_deceleration_finished')
-    mp_read_laser_settings_finished = Signal(name='mp_read_laser_settings_finished')
-
-    move_to_wavelength_finished = Signal(float, name='move_to_wavelength_finished')
-    wavelength_sweep_finished = Signal(float, float, name='wavelength_sweep_finished')
-
-    laser_is_moving_changed = Signal(bool, float, name='laser_is_moving_changed')
-    movement_finished_changed = Signal(bool, name='movement_finished_changed')
-
-    def __init__(self, parent,
-                 laser_moving_flag: Value,
-                 laser_finished_flag: Value,
-                 start_capture_flag: Value,
-                 enable_logging=False):
-        super().__init__(parent, internal_log_level=logging.DEBUG, internal_log=True)
-
-        self.register_child_process(MPLaserDevice,
-                                    laser_moving_flag,
-                                    laser_finished_flag,
-                                    start_capture_flag)
-
-    def set_start_capture_flag(self, start_capture_flag: Value):
-        self._start_capture_flag = start_capture_flag
-
-    @cmp.CProcessControl.register_function(get_connected_finished)
-    def get_connected(self):
-        self._internal_logger.info("Reading current connection state from process.")
-
-    @cmp.CProcessControl.register_function(get_current_wavelength_finished)
-    def get_current_wavelength(self):
-        self._internal_logger.info("Reading current wavelength from process.")
-
-    @cmp.CProcessControl.register_function(get_min_wavelength_finished)
-    def get_min_wavelength(self):
-        self._internal_logger.info("Reading minimum wavelength from process.")
-
-    @cmp.CProcessControl.register_function(get_max_wavelength_finished)
-    def get_max_wavelength(self):
-        self._internal_logger.info("Reading maximum wavelength from process.")
-
-    @CProcessControl.register_function(get_velocity_finished)
-    def get_velocity(self):
-        self._internal_logger.info("Reading velocity from process.")
-
-    @cmp.CProcessControl.register_function(get_acceleration_finished)
-    def get_acceleration(self):
-        self._internal_logger.info("Reading acceleration from process.")
-
-    @cmp.CProcessControl.register_function(get_deceleration_finished)
-    def get_deceleration(self):
-        self._internal_logger.info("Reading deceleration from process.")
-
-    @cmp.CProcessControl.register_function(mp_read_laser_settings_finished)
-    def mp_read_laser_settings(self, usb_port: str):
-        self._internal_logger.info(f"Reading laser settings from process using {usb_port}")
-
-    @cmp.CProcessControl.register_function(move_to_wavelength_finished)
-    def move_to_wavelength(self, usb_port: str, wavelength: float):
-        print(f"Moving laser ({usb_port}) to wavelength {wavelength} from process")
-
-    @cmp.CProcessControl.register_function(wavelength_sweep_finished)
-    def wavelength_sweep(self, usb_port: str, wavelength_start: float, wavelength_end: float):
-        print(f"Sweeping laser ({usb_port}): Wavelength {wavelength_start} - {wavelength_end} from process")
diff --git a/src/LaserControl/controller/multiprocess/move_to_wavelength.py b/src/LaserControl/controller/multiprocess/move_to_wavelength.py
index 9f1c1898f298a817217a65c410fc8cd6d9867d5b..f1a108f1abc3a8b3d4df37e43a1e6e278ee19f19 100644
--- a/src/LaserControl/controller/multiprocess/move_to_wavelength.py
+++ b/src/LaserControl/controller/multiprocess/move_to_wavelength.py
@@ -3,6 +3,8 @@ import time
 from multiprocessing import Value
 
 from LaserControl.controller.LaserCon import LaserCon
+
+
 #from LaserControl.controller.multiprocess.logging import log_debug, log_info
 
 
diff --git a/src/LaserControl/libs/LaserLibSimulator.py b/src/LaserControl/libs/LaserLibSimulator.py
index 42c7ae810f25ffd6866a51f549e68cfd0618d00b..9d8d76bf926e608dcc1065ab77f7e5ef510c64e3 100644
--- a/src/LaserControl/libs/LaserLibSimulator.py
+++ b/src/LaserControl/libs/LaserLibSimulator.py
@@ -1,6 +1,5 @@
 import logging
 import time
-
 from random import randint
 
 from LaserControl.libs.LaserSceleton import LaserScelton
diff --git a/src/LaserControl/libs/LaserSceleton.py b/src/LaserControl/libs/LaserSceleton.py
index 02be2d061a40ee4d5067cf02ff84a0614a6b9237..06b7909c130b3566aec74bdfe32090ce4b29f0cf 100644
--- a/src/LaserControl/libs/LaserSceleton.py
+++ b/src/LaserControl/libs/LaserSceleton.py
@@ -1,9 +1,3 @@
-import logging
-import time
-
-from random import randint
-
-
 class LaserScelton():
 
     # ==================================================================================================================
diff --git a/src/LaserControl/model/LaserControlModel.py b/src/LaserControl/model/LaserControlModel.py
index 06e7927a1a6e4a50a16084cca12a2b40f7b094cb..4fd960ddb57e45755b988770ccbb65829319ce5e 100644
--- a/src/LaserControl/model/LaserControlModel.py
+++ b/src/LaserControl/model/LaserControlModel.py
@@ -1,8 +1,9 @@
 # import mcpy
+import CaptDeviceControl as captdev
+
 from LaserControl.LaserConfig import LaserConfig
 from LaserControl.model.LaserControlSignals import LaserControlSignals
 
-import CaptDeviceControl as captdev
 
 # from LaserControl.model.LaserControlSignals import LaserControllerSignals
 # from LaserControlOld.LaserConfig import LaserConfig
diff --git a/src/LaserControl/resources/icons/icon_adc.svg b/src/LaserControl/resources/icons/icon_adc.svg
index c4a79cb2ad1b6d37d8130df86cb2386e328b6a7b..be80435149761e1123ed1ba5402834e426920ea7 100644
--- a/src/LaserControl/resources/icons/icon_adc.svg
+++ b/src/LaserControl/resources/icons/icon_adc.svg
@@ -2,20 +2,20 @@
 <!-- Generiert durch Microsoft Visio, SVG Export icon_adc.svg Page-4 -->
 
 <svg
-   width="1.49467in"
-   height="1.50392in"
-   viewBox="0 0 107.616 108.282"
-   xml:space="preserve"
-   color-interpolation-filters="sRGB"
-   class="st4"
-   version="1.1"
-   id="svg264"
-   sodipodi:docname="icon_adc.svg"
-   inkscape:version="1.2.2 (732a01da63, 2022-12-09)"
-   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
-   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
-   xmlns="http://www.w3.org/2000/svg"
-   xmlns:svg="http://www.w3.org/2000/svg"><defs
+        width="1.49467in"
+        height="1.50392in"
+        viewBox="0 0 107.616 108.282"
+        xml:space="preserve"
+        color-interpolation-filters="sRGB"
+        class="st4"
+        version="1.1"
+        id="svg264"
+        sodipodi:docname="icon_adc.svg"
+        inkscape:version="1.2.2 (732a01da63, 2022-12-09)"
+        xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+        xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+        xmlns="http://www.w3.org/2000/svg"
+><defs
    id="defs268" /><sodipodi:namedview
    id="namedview266"
    pagecolor="#ffffff"
diff --git a/src/LaserControl/view/LaserControlView.py b/src/LaserControl/view/LaserControlView.py
index 31a2f9ef67d7532c0021b6d233d4785c505b4596..65f162748f1343ebd43c31dce92a690766d76b55 100644
--- a/src/LaserControl/view/LaserControlView.py
+++ b/src/LaserControl/view/LaserControlView.py
@@ -1,20 +1,19 @@
 import logging
 import os
-import time
 
-from PySide6.QtCore import QThread, QTimer
+from PySide6.QtCore import QTimer
 from PySide6.QtWidgets import QMainWindow, QProgressDialog
 from rich.logging import RichHandler
 
-from LaserControl.controller.LaserControlController import LaserControlController
-from LaserControl.view.Ui_LaserControlWindow import Ui_LaserControlWindow
+from LaserControl.controller.LaserDeviceControl import MPLaserDeviceControl
 from LaserControl.model.LaserControlModel import LaserControlModel
+from LaserControl.view.Ui_LaserControlWindow import Ui_LaserControlWindow
 from LaserControl.view.WidgetLaserInformation import WidgetLaserInformation
 
 
 class LaserControlView(QMainWindow):
 
-    def __init__(self, model: LaserControlModel, controller: LaserControlController):
+    def __init__(self, model: LaserControlModel, controller: MPLaserDeviceControl):
         super().__init__()
         self.handler = RichHandler(rich_tracebacks=True)
         self.logger = logging.getLogger(f"{self.__class__.__name__}({os.getpid()})")
diff --git a/src/LaserControl/view/Ui_LaserControlWindow.py b/src/LaserControl/view/Ui_LaserControlWindow.py
index e13b9218778f02e17dad4b5d182fa24c17281282..dd60d8d2750151f188cd0acc5ed5926e1a3b2086 100644
--- a/src/LaserControl/view/Ui_LaserControlWindow.py
+++ b/src/LaserControl/view/Ui_LaserControlWindow.py
@@ -8,18 +8,12 @@
 ## WARNING! All changes made in this file will be lost when recompiling UI file!
 ################################################################################
 
-from PySide6.QtCore import (QCoreApplication, QDate, QDateTime, QLocale,
-    QMetaObject, QObject, QPoint, QRect,
-    QSize, QTime, QUrl, Qt)
-from PySide6.QtGui import (QBrush, QColor, QConicalGradient, QCursor,
-    QFont, QFontDatabase, QGradient, QIcon,
-    QImage, QKeySequence, QLinearGradient, QPainter,
-    QPalette, QPixmap, QRadialGradient, QTransform)
-from PySide6.QtWidgets import (QApplication, QComboBox, QDoubleSpinBox, QFrame,
-    QGridLayout, QGroupBox, QLCDNumber, QLabel,
-    QMainWindow, QPushButton, QSizePolicy, QSlider,
-    QTabWidget, QVBoxLayout, QWidget)
-import resources_rc
+from PySide6.QtCore import (QCoreApplication, QMetaObject, QSize, Qt)
+from PySide6.QtWidgets import (QComboBox, QDoubleSpinBox, QFrame,
+                               QGridLayout, QGroupBox, QLCDNumber, QLabel,
+                               QPushButton, QSlider,
+                               QTabWidget, QVBoxLayout, QWidget)
+
 
 class Ui_LaserControlWindow(object):
     def setupUi(self, LaserControlWindow):