diff --git a/src/emuvim/dcemulator/monitoring.py b/src/emuvim/dcemulator/monitoring.py
index 269a7e0..ce24a40 100755
--- a/src/emuvim/dcemulator/monitoring.py
+++ b/src/emuvim/dcemulator/monitoring.py
@@ -34,7 +34,7 @@
 from prometheus_client import start_http_server, Summary, Histogram, Gauge, Counter, REGISTRY, CollectorRegistry, \
     pushadd_to_gateway, push_to_gateway, delete_from_gateway
 import threading
-from subprocess import Popen
+from subprocess import Popen, check_call
 import os
 import docker
 import json
@@ -535,8 +535,15 @@
 
     def _stop_container(self, name):
 
-        container = self.dockercli.containers.get(name)
-        container.remove(force=True)
+        #container = self.dockercli.containers.get(name)
+        #container.stop()
+        #container.remove(force=True)
+
+        # the only robust way to stop these containers is via Popen, it seems
+        time.sleep(1)
+        cmd = ['docker', 'rm', '-f', name]
+        Popen(cmd)
+
 
     def update_skewmon(self, vnf_name, resource_name, action):
 
diff --git a/src/emuvim/dcemulator/node.py b/src/emuvim/dcemulator/node.py
index c5ac9b3..e0eb7d3 100755
--- a/src/emuvim/dcemulator/node.py
+++ b/src/emuvim/dcemulator/node.py
@@ -246,6 +246,24 @@
 
         return True
 
+    def attachExternalSAP(self, sap_name, sap_ip):
+        # create SAP as OVS internal interface
+        sap_intf = self.switch.attachInternalIntf(sap_name, sap_ip)
+
+        # add this as a link to the DCnetwork graph, so it is available for routing
+        attr_dict2 = {'src_port_id': sap_name, 'src_port_nr': None,
+                      'src_port_name': sap_name,
+                      'dst_port_id': self.switch.ports[sap_intf], 'dst_port_nr': self.switch.ports[sap_intf],
+                      'dst_port_name': sap_intf.name}
+        self.net.DCNetwork_graph.add_edge(sap_name, self.switch.name, attr_dict=attr_dict2)
+
+        attr_dict2 = {'dst_port_id': sap_name, 'dst_port_nr': None,
+                      'dst_port_name': sap_name,
+                      'src_port_id': self.switch.ports[sap_intf], 'src_port_nr': self.switch.ports[sap_intf],
+                      'src_port_name': sap_intf.name}
+        self.net.DCNetwork_graph.add_edge(self.switch.name, sap_name, attr_dict=attr_dict2)
+
+
     def listCompute(self):
         """
         Return a list of all running containers assigned to this
