diff --git a/manifests/computeservice.yaml b/manifests/computeservice.yaml
index 16507dfcbf736de83a038177c529a5885cc3585a..e9fbe72d8caa1a43557ff2bb65e3b106b31a236a 100644
--- a/manifests/computeservice.yaml
+++ b/manifests/computeservice.yaml
@@ -53,19 +53,3 @@ spec:
     protocol: TCP
     port: 9090
     targetPort: 9090
----
-apiVersion: v1
-kind: Service
-metadata:
-  name: computeservice-public
-spec:
-  type: NodePort
-  selector:
-    app: computeservice
-  ports:
-  - name: http
-    protocol: TCP
-    port: 8080
-    targetPort: 8080
-    nodePort: 30808
----
diff --git a/manifests/contextservice.yaml b/manifests/contextservice.yaml
index c8fcb38f7bb525b587b176d3f334b74167095c47..e93fdbb12dcf49a5eac69d450a8b1810dbd4a1c3 100644
--- a/manifests/contextservice.yaml
+++ b/manifests/contextservice.yaml
@@ -73,21 +73,3 @@ spec:
     protocol: TCP
     port: 8080
     targetPort: 8080
----
-apiVersion: v1
-kind: Service
-metadata:
-  name: contextservice-public
-  labels:
-    app: contextservice
-spec:
-  type: NodePort
-  selector:
-    app: contextservice
-  ports:
-  - name: http
-    protocol: TCP
-    port: 8080
-    targetPort: 8080
-    nodePort: 31808
----
diff --git a/manifests/dbscanservingservice.yaml b/manifests/dbscanservingservice.yaml
index ca8982db25f0fe94588418dc67787f63babc9826..32b22d00f794e23ebab98d0fb9c5030700ea239b 100644
--- a/manifests/dbscanservingservice.yaml
+++ b/manifests/dbscanservingservice.yaml
@@ -47,20 +47,3 @@ spec:
   - name: grpc
     port: 10006
     targetPort: 10006
----
-apiVersion: v1
-kind: Service
-metadata:
-  name: dbscanservingservice-public
-  labels:
-    app: dbscanservingservice
-spec:
-  type: NodePort
-  selector:
-    app: dbscanservingservice
-  ports:
-  - name: http
-    protocol: TCP
-    port: 10006
-    targetPort: 10006
----
diff --git a/manifests/monitoringservice.yaml b/manifests/monitoringservice.yaml
index a908d7d64a4f8e478ba41acb50612dd0f40f0457..047a73a6c7e4cd8fabd3cf007ed8efc217205ca2 100644
--- a/manifests/monitoringservice.yaml
+++ b/manifests/monitoringservice.yaml
@@ -74,4 +74,3 @@ spec:
     protocol: TCP
     port: 8086
     targetPort: 8086
----
diff --git a/manifests/opticalattackmitigatorservice.yaml b/manifests/opticalattackmitigatorservice.yaml
index 1cc03ba0575edcc66e1cf3f9b57fd161a763a696..5f676d09f18911233ea7f685d9a8cf9d6b9a20ed 100644
--- a/manifests/opticalattackmitigatorservice.yaml
+++ b/manifests/opticalattackmitigatorservice.yaml
@@ -47,20 +47,3 @@ spec:
   - name: grpc
     port: 10007
     targetPort: 10007
----
-apiVersion: v1
-kind: Service
-metadata:
-  name: opticalattackmitigatorservice-public
-  labels:
-    app: opticalattackmitigatorservice
-spec:
-  type: NodePort
-  selector:
-    app: opticalattackmitigatorservice
-  ports:
-  - name: http
-    protocol: TCP
-    port: 10007
-    targetPort: 10007
----
diff --git a/manifests/opticalcentralizedattackdetectorservice.yaml b/manifests/opticalcentralizedattackdetectorservice.yaml
index d3ceb3ea49ac1421e14faf00dbb81b1fdaff5537..08e9b10c2d63f8a476c19b88e3d11695e5f64ccd 100644
--- a/manifests/opticalcentralizedattackdetectorservice.yaml
+++ b/manifests/opticalcentralizedattackdetectorservice.yaml
@@ -47,20 +47,3 @@ spec:
   - name: grpc
     port: 10005
     targetPort: 10005
----
-apiVersion: v1
-kind: Service
-metadata:
-  name: opticalcentralizedattackdetectorservice-public
-  labels:
-    app: opticalcentralizedattackdetectorservice
-spec:
-  type: NodePort
-  selector:
-    app: opticalcentralizedattackdetectorservice
-  ports:
-  - name: grpc
-    protocol: TCP
-    port: 10005
-    targetPort: 10005
----
diff --git a/manifests/webuiservice.yaml b/manifests/webuiservice.yaml
index 4e71d43ef4ea6ed951a460f5cadc4cc78c42a1ea..c467a5cf22fe8c4e7ba975ce20b34d72b9fc9570 100644
--- a/manifests/webuiservice.yaml
+++ b/manifests/webuiservice.yaml
@@ -89,26 +89,3 @@ spec:
   - name: http
     port: 8004
     targetPort: 8004
----
-apiVersion: v1
-kind: Service
-metadata:
-  name: webuiservice-public
-  labels:
-    app: webuiservice
-spec:
-  type: NodePort
-  selector:
-    app: webuiservice
-  ports:
-  - name: http
-    protocol: TCP
-    port: 8004
-    targetPort: 8004
-    nodePort: 30800
-  - name: grafana
-    protocol: TCP
-    port: 3000
-    targetPort: 3000
-    nodePort: 30300
----
diff --git a/src/common/tests/EventTools.py b/src/common/tests/EventTools.py
index c263be309632f33637cbfa02a8171cd0e591a886..bb300774be2f849011f0f8d47119ee8035a7a362 100644
--- a/src/common/tests/EventTools.py
+++ b/src/common/tests/EventTools.py
@@ -36,34 +36,52 @@ def event_to_key(event):
     entity_id = entity_id_selector_function(event)
     return (event_class_name, event.event.event_type, grpc_message_to_json_string(entity_id))
 
-def check_events(events_collector : EventsCollector, expected_events : List[Tuple[str, int, Dict]]):
+def check_events(
+    events_collector : EventsCollector, expected_events : List[Tuple[str, int, Dict]],
+    fail_if_missing_events : bool = True, fail_if_unexpected_events : bool = False,
+    timeout_per_event = 1.0, max_wait_time = 30.0
+) -> None:
     expected_events_map = {}
-    num_events_expected = 0
+    num_expected_events = 0
     for event_classname, event_type_id, event_ids in expected_events:
         event_key = (event_classname, event_type_id, json.dumps(event_ids, sort_keys=True))
         event_count = expected_events_map.get(event_key, 0)
         expected_events_map[event_key] = event_count + 1
-        num_events_expected += 1
+        num_expected_events += 1
 
-    events_received = events_collector.get_events(block=True, count=num_events_expected)
-    for i, event_received in enumerate(events_received):
+    i, wait_time = 0, 0
+    while num_expected_events > 0:
+        event_received = events_collector.get_event(block=True, timeout=timeout_per_event)
+        if event_received is None:
+            wait_time += timeout_per_event
+            if wait_time > max_wait_time: break
+            continue
         LOGGER.info('event_received[{:d}] = {:s}'.format(i, str(event_received)))
         event_key = event_to_key(event_received)
         event_count = expected_events_map.pop(event_key, 0)
+        if event_count > 0: num_expected_events -= 1
         event_count -= 1
         if event_count != 0: expected_events_map[event_key] = event_count
 
-    if len(expected_events_map) > 0:
+    if len(expected_events_map) == 0:
+        LOGGER.info('EventsCheck passed')
+    else:
         missing_events = {}
         unexpected_events = {}
         for event_key,event_count in expected_events_map.items():
             if event_count > 0:
-                if (event_key[0] == 'DeviceEvent') and (event_key[1] == EVENT_UPDATE):
-                    continue # sometimes device update events, specially with massive port updates, might be lost
                 missing_events[event_key] = event_count
             if event_count < 0:
                 unexpected_events[event_key] = -event_count
-        msg = ['EventCheck failed:']
-        if len(missing_events) > 0: msg.append('missing_events={:s}'.format(str(missing_events)))
-        if len(unexpected_events) > 0: msg.append('unexpected_events={:s}'.format(str(unexpected_events)))
-        if len(msg) > 1: raise Exception(' '.join(msg))
+        msg_except = ['EventCheck failed:']
+        msg_logger = ['EventCheck:']
+        if len(missing_events) > 0:
+            msg = 'missing_events={:s}'.format(str(missing_events))
+            if fail_if_missing_events: msg_except.append(msg)
+            msg_logger.append(msg)
+        if len(unexpected_events) > 0:
+            msg = 'unexpected_events={:s}'.format(str(unexpected_events))
+            if fail_if_unexpected_events: msg_except.append(msg)
+            msg_logger.append(msg)
+        if len(msg_logger) > 1: LOGGER.warning(' '.join(msg_logger))
+        if len(msg_except) > 1: raise Exception(' '.join(msg_except))
diff --git a/src/context/client/EventsCollector.py b/src/context/client/EventsCollector.py
index 3f0ce45fdd85dbf5be36f76c30126c356c3b270d..b58e8504bf74a0d82ceef774a78857acbe1a8b24 100644
--- a/src/context/client/EventsCollector.py
+++ b/src/context/client/EventsCollector.py
@@ -46,22 +46,23 @@ class EventsCollector:
         self._connection_thread.start()
 
     def get_event(self, block : bool = True, timeout : float = 0.1):
-        return self._events_queue.get(block=block, timeout=timeout)
+        try:
+            return self._events_queue.get(block=block, timeout=timeout)
+        except queue.Empty: # pylint: disable=catching-non-exception
+            return None
 
     def get_events(self, block : bool = True, timeout : float = 0.1, count : int = None):
         events = []
         if count is None:
             while True:
-                try:
-                    events.append(self.get_event(block=block, timeout=timeout))
-                except queue.Empty: # pylint: disable=catching-non-exception
-                    break
+                event = self.get_event(block=block, timeout=timeout)
+                if event is None: break
+                events.append(event)
         else:
             for _ in range(count):
-                try:
-                    events.append(self.get_event(block=block, timeout=timeout))
-                except queue.Empty: # pylint: disable=catching-non-exception
-                    pass
+                event = self.get_event(block=block, timeout=timeout)
+                if event is None: continue
+                events.append(event)
         return sorted(events, key=lambda e: e.event.timestamp)
 
     def stop(self):
diff --git a/src/opticalcentralizedattackdetector/Config.py b/src/opticalcentralizedattackdetector/Config.py
index 5a6b7aa5651566fb2305f08baec7c6f33872fd36..41d802dd4005e0b862520f739e292952709e1273 100644
--- a/src/opticalcentralizedattackdetector/Config.py
+++ b/src/opticalcentralizedattackdetector/Config.py
@@ -11,7 +11,7 @@ GRPC_GRACE_PERIOD = 60
 # service settings
 MONITORING_INTERVAL = 2  # monitoring interval in seconds
 #TODO: adjust the addresses below for the specific case
-MONITORING_SERVICE_ADDRESS = 'monitoring'  # address/name of the monitoring service
+MONITORING_SERVICE_ADDRESS = 'monitoringservice'  # address/name of the monitoring service
 # MONITORING_SERVICE_ADDRESS = '10.99.41.20'  # address/name of the monitoring service
 CONTEXT_SERVICE_ADDRESS = 'contextservice'  # address/name of the monitoring service
 # CONTEXT_SERVICE_ADDRESS = '10.107.199.65'  # address/name of the monitoring service
diff --git a/src/service/service/service_handlers/l3nm_openconfig/L3NMOpenConfigServiceHandler.py b/src/service/service/service_handlers/l3nm_openconfig/L3NMOpenConfigServiceHandler.py
index eb1914fc301cfd759cf55910634f8023eec442ce..894f68b3e7470761ce427f8cb830f4e54f59bbdd 100644
--- a/src/service/service/service_handlers/l3nm_openconfig/L3NMOpenConfigServiceHandler.py
+++ b/src/service/service/service_handlers/l3nm_openconfig/L3NMOpenConfigServiceHandler.py
@@ -147,6 +147,10 @@ class L3NMOpenConfigServiceHandler(_ServiceHandler):
                         '/interface[{:s}]/subinterface[{:d}]'.format(endpoint_uuid, sub_interface_index), {
                             'name': endpoint_uuid, 'index': sub_interface_index,
                     }),
+                    config_rule_delete(
+                        '/interface[{:s}]'.format(endpoint_uuid), {
+                            'name': endpoint_uuid,
+                    }),
                     config_rule_delete(
                         '/network_instance[{:s}]'.format(network_instance_name), {
                             'name': network_instance_name
diff --git a/src/tests/ofc22/expose_services.yaml b/src/tests/ofc22/expose_services.yaml
index 4f553e2d693f105f5902834636e76233b6c37070..0bd049ef80ebab2a087765853706e2c219377203 100644
--- a/src/tests/ofc22/expose_services.yaml
+++ b/src/tests/ofc22/expose_services.yaml
@@ -20,6 +20,11 @@ spec:
     port: 6379
     targetPort: 6379
     nodePort: 30637
+  - name: http
+    protocol: TCP
+    port: 8080
+    targetPort: 8080
+    nodePort: 31808
 ---
 apiVersion: v1
 kind: Service
@@ -55,3 +60,39 @@ spec:
     targetPort: 8086
     nodePort: 30886
 ---
+apiVersion: v1
+kind: Service
+metadata:
+  name: computeservice-public
+spec:
+  type: NodePort
+  selector:
+    app: computeservice
+  ports:
+  - name: http
+    protocol: TCP
+    port: 8080
+    targetPort: 8080
+    nodePort: 30808
+---
+apiVersion: v1
+kind: Service
+metadata:
+  name: webuiservice-public
+  labels:
+    app: webuiservice
+spec:
+  type: NodePort
+  selector:
+    app: webuiservice
+  ports:
+  - name: http
+    protocol: TCP
+    port: 8004
+    targetPort: 8004
+    nodePort: 30800
+  - name: grafana
+    protocol: TCP
+    port: 3000
+    targetPort: 3000
+    nodePort: 30300
diff --git a/src/tests/ofc22/tests/Objects.py b/src/tests/ofc22/tests/Objects.py
index 00b4f4f1f33eefc1b9fb5d61a227d34710eda498..fe20575a7b96315d6a47d8e0ef84a4c0b92ea759 100644
--- a/src/tests/ofc22/tests/Objects.py
+++ b/src/tests/ofc22/tests/Objects.py
@@ -47,7 +47,7 @@ except ImportError:
     DEVICE_O1_ADDRESS  = '0.0.0.0'
     DEVICE_O1_PORT     = 4900
 
-#USE_REAL_DEVICES = False     # Force to use emulated devices
+#USE_REAL_DEVICES = False     # Uncomment to force to use emulated devices
 
 def json_endpoint_ids(device_id : Dict, endpoint_descriptors : List[Tuple[str, str, List[int]]]):
     return [
diff --git a/src/tests/ofc22/tests/test_functional_bootstrap.py b/src/tests/ofc22/tests/test_functional_bootstrap.py
index d1ef2f6d8655e0badf8b265ad91e98569ca93579..a65b60378f4ca3eeed3d593ce19af9261d70a1d1 100644
--- a/src/tests/ofc22/tests/test_functional_bootstrap.py
+++ b/src/tests/ofc22/tests/test_functional_bootstrap.py
@@ -115,14 +115,14 @@ def test_devices_bootstraping(
         expected_events.extend([
             # Device creation, update for automation to start the device
             ('DeviceEvent', EVENT_CREATE, json_device_id(device_uuid)),
-            ('DeviceEvent', EVENT_UPDATE, json_device_id(device_uuid)),
+            #('DeviceEvent', EVENT_UPDATE, json_device_id(device_uuid)),
         ])
 
-        response = context_client.GetDevice(response)
-        for endpoint in response.device_endpoints:
-            for _ in endpoint.kpi_sample_types:
-                # Monitoring configures monitoring for endpoint
-                expected_events.append(('DeviceEvent', EVENT_UPDATE, json_device_id(device_uuid)))
+        #response = context_client.GetDevice(response)
+        #for endpoint in response.device_endpoints:
+        #    for _ in endpoint.kpi_sample_types:
+        #        # Monitoring configures monitoring for endpoint
+        #        expected_events.append(('DeviceEvent', EVENT_UPDATE, json_device_id(device_uuid)))
 
     # ----- Validate Collected Events ----------------------------------------------------------------------------------
     check_events(events_collector, expected_events)