diff --git a/src/pathcomp/frontend/service/algorithms/tools/ComputeSubServices.py b/src/pathcomp/frontend/service/algorithms/tools/ComputeSubServices.py
index 8ffdfaf3ed9d35b52e9c262a980e6e8e8fd234af..dedc6f9c6df9518bb3330a8f9d2c62c18b8e32f4 100644
--- a/src/pathcomp/frontend/service/algorithms/tools/ComputeSubServices.py
+++ b/src/pathcomp/frontend/service/algorithms/tools/ComputeSubServices.py
@@ -49,7 +49,7 @@ import logging, queue, uuid
 from typing import Dict, List, Optional, Tuple
 from common.DeviceTypes import DeviceTypeEnum
 from common.proto.context_pb2 import Device, ServiceTypeEnum
-from .ResourceGroups import IGNORED_DEVICE_TYPES, get_resource_classification
+from .ResourceGroups import IGNORED_DEVICE_TYPES, REMOTEDOMAIN_DEVICE_TYPES, get_resource_classification
 from .ServiceTypes import get_service_type
 
 LOGGER = logging.getLogger(__name__)
@@ -81,7 +81,21 @@ def convert_explicit_path_hops_to_connections(
             LOGGER.debug('  ignored')
             continue
 
-        if prv_res_class[0] is None:
+        if res_class[1] in REMOTEDOMAIN_DEVICE_TYPES:
+            LOGGER.debug('  create and terminate underlying connection')
+
+            # create underlying connection
+            connection_uuid = str(uuid.uuid4())
+            prv_service_type = connection_stack.queue[-1][1]
+            service_type = get_service_type(res_class[1], prv_service_type)
+            connection_stack.put((connection_uuid, service_type, [path_hop], []))
+
+            # underlying connection ended
+            connection = connection_stack.get()
+            connections.append(connection)
+            connection_stack.queue[-1][3].append(connection[0])
+            #connection_stack.queue[-1][2].append(path_hop)
+        elif prv_res_class[0] is None:
             # path ingress
             LOGGER.debug('  path ingress')
             connection_stack.put((main_service_uuid, main_service_type, [path_hop], []))
diff --git a/src/pathcomp/frontend/service/algorithms/tools/ResourceGroups.py b/src/pathcomp/frontend/service/algorithms/tools/ResourceGroups.py
index 6f723009c3e1a9e5b3047af0d11a5eabf72cc92e..843c41803805106e9f7575fb9ff6b1344d036994 100644
--- a/src/pathcomp/frontend/service/algorithms/tools/ResourceGroups.py
+++ b/src/pathcomp/frontend/service/algorithms/tools/ResourceGroups.py
@@ -53,6 +53,7 @@ DEVICE_TYPE_TO_DEEPNESS = {
 }
 
 IGNORED_DEVICE_TYPES = {DeviceTypeEnum.EMULATED_OPTICAL_SPLITTER}
+REMOTEDOMAIN_DEVICE_TYPES = {DeviceTypeEnum.NETWORK}
 
 def get_device_controller_uuid(
     device : Device