diff --git a/src/automation/src/main/java/eu/teraflow/automation/AutomationServiceImpl.java b/src/automation/src/main/java/eu/teraflow/automation/AutomationServiceImpl.java
index 017a101fb1a5b35b018a775d36f24480104f586f..cb8ac5a0a2c97e3a6de47bcb7ce8ed8ec3df14a7 100644
--- a/src/automation/src/main/java/eu/teraflow/automation/AutomationServiceImpl.java
+++ b/src/automation/src/main/java/eu/teraflow/automation/AutomationServiceImpl.java
@@ -42,53 +42,51 @@ public class AutomationServiceImpl implements AutomationService {
     @Override
     public Uni<Device> addDevice(String deviceId) {
         final var deserializedDeviceUni = contextService.getDevice(deviceId);
-
+    
         deserializedDeviceUni
                 .onFailure()
                 .recoverWithNull()
-                .subscribe()
-                .with(
-                        device -> {
-                            final var id = deviceId;
-
-                            if (device == null) {
-                                LOGGER.warnf("%s is null. Ignoring...", device);
-                                return;
-                            }
-
-                            if (device.isEnabled()) {
-                                LOGGER.warnf("%s has already been enabled. Ignoring...", device);
-                                return;
-                            }
-
-                            // LOGGER.infof(MESSAGE, device);
-
-                            final var initialConfiguration =
-                                    deviceService.getInitialConfiguration(device.getDeviceId());
-
-                            device.enableDevice();
-                            LOGGER.infof("Enabled device [%s]", id);
-
-                            initialConfiguration
-                                    .subscribe()
-                                    .with(
-                                            deviceConfig -> {
-                                                device.setDeviceConfiguration(deviceConfig);
-                                                final var configuredDeviceIdUni = deviceService.configureDevice(device);
-
-                                                configuredDeviceIdUni
-                                                        .subscribe()
-                                                        .with(
-                                                                configuredDeviceId ->
-                                                                        LOGGER.infof(
-                                                                                "Device [%s] has been successfully enabled and configured with %s.\n",
-                                                                                id, deviceConfig));
-                                            });
-                        });
-
+                .invoke(device -> processDevice(device, deviceId));
+    
         return deserializedDeviceUni;
     }
-
+    
+    private void processDevice(Device device, String deviceId) {
+        if (device == null) {
+            LOGGER.warnf("%s is null. Ignoring...", device);
+            return;
+        }
+    
+        if (device.isEnabled()) {
+            LOGGER.warnf("%s has already been enabled. Ignoring...", device);
+            return;
+        }
+    
+        enableAndConfigureDevice(device, deviceId);
+    }
+    
+    private void enableAndConfigureDevice(Device device, String deviceId) {
+        final var initialConfiguration = deviceService.getInitialConfiguration(device.getDeviceId());
+    
+        device.enableDevice();
+        LOGGER.infof("Enabled device [%s]", deviceId);
+    
+        initialConfiguration
+                .subscribe()
+                .with(deviceConfig -> setDeviceConfiguration(device, deviceId, deviceConfig));
+    }
+    
+    private void setDeviceConfiguration(Device device, String deviceId, DeviceConfig deviceConfig) {
+        device.setDeviceConfiguration(deviceConfig);
+        final var configuredDeviceIdUni = deviceService.configureDevice(device);
+    
+        configuredDeviceIdUni
+                .subscribe()
+                .with(configuredDeviceId -> LOGGER.infof(
+                        "Device [%s] has been successfully enabled and configured with %s.\n",
+                        deviceId, deviceConfig));
+    }
+    
     @Override
     public Uni<Device> deleteDevice(String deviceId) {
         final var deserializedDeviceUni = contextService.getDevice(deviceId);