diff --git a/src/emuvim/api/sonata/dummygatekeeper.py b/src/emuvim/api/sonata/dummygatekeeper.py
index 76ed3c2..59960a9 100755
--- a/src/emuvim/api/sonata/dummygatekeeper.py
+++ b/src/emuvim/api/sonata/dummygatekeeper.py
@@ -315,7 +315,19 @@
                             intfs.remove(found_interfaces[0])
                             mgmt_intf_names.append(vnf_interface)
 
-            # 4. do the dc.startCompute(name="foobar") call to run the container
+            # 4. generate the volume paths for the docker container
+            volumes=list()
+            # a volume to extract log files
+            docker_log_path = "/tmp/results/%s/%s"%(self.uuid,vnf_name)
+            LOG.debug("LOG path for vnf %s is %s."%(vnf_name,docker_log_path))
+            if not os.path.exists(docker_log_path):
+                LOG.debug("Creating folder %s"%docker_log_path)
+                os.makedirs(docker_log_path)
+
+            volumes.append(docker_log_path+":/mnt/share/")
+
+
+            # 5. do the dc.startCompute(name="foobar") call to run the container
             # TODO consider flavors, and other annotations
             # TODO: get all vnf id's from the nsd for this vnfd and use those as dockername
             # use the vnf_id in the nsd as docker name
@@ -325,8 +337,16 @@
 
             LOG.info("Starting %r as %r in DC %r" % (vnf_name, self.vnf_name2docker_name[vnf_name], vnfd.get("dc")))
             LOG.debug("Interfaces for %r: %r" % (vnf_name, intfs))
-            vnfi = target_dc.startCompute(self.vnf_name2docker_name[vnf_name], network=intfs, image=docker_name, flavor_name="small",
-                    cpu_quota=cpu_quota, cpu_period=cpu_period, cpuset=cpu_list, mem_limit=mem_lim)
+            vnfi = target_dc.startCompute(
+                    self.vnf_name2docker_name[vnf_name],
+                    network=intfs,
+                    image=docker_name,
+                    flavor_name="small",
+                    cpu_quota=cpu_quota,
+                    cpu_period=cpu_period,
+                    cpuset=cpu_list,
+                    mem_limit=mem_lim,
+                    volumes=volumes)
 
             # rename the docker0 interfaces (eth0) to the management port name defined in the VNFD
             if USE_DOCKER_MGMT:
@@ -344,6 +364,7 @@
         # Find the correct datacenter
         status = vnfi.getStatus()
         dc = vnfi.datacenter
+
         # stop the vnfi
         LOG.info("Stopping the vnf instance contained in %r in DC %r" % (status["name"], dc))
         dc.stopCompute(status["name"])
@@ -938,7 +959,7 @@
         Will return a new UUID to identify the running service instance.
         :return: UUID
         """
-        LOG.info("POST /instantiations (or /reqeusts) called")
+        LOG.info("POST /instantiations (or /requests) called")
         # try to extract the service uuid from the request
         json_data = request.get_json(force=True)
         service_uuid = json_data.get("service_uuid")
diff --git a/src/emuvim/dashboard/__init__.py b/src/emuvim/dashboard/__init__.py
old mode 100644
new mode 100755
diff --git a/src/emuvim/examples/profiling.py b/src/emuvim/examples/profiling.py
index daac301..c4a7561 100644
--- a/src/emuvim/examples/profiling.py
+++ b/src/emuvim/examples/profiling.py
@@ -61,7 +61,6 @@
 
 """
     A simple topology with only one data center which will stop when another thread tells it to or when a time limit is reached.
-    :args: an argument list which may contain the time limit
 """
 class Profiling:
 
@@ -69,22 +68,23 @@
 
     """
      Set up a simple topology and start it
+     :port: the port the REST interface will be using, port+1 will be in use as well
     """
-    def __init__(self):
+    def __init__(self, port=5000):
         GracefulKiller(self)
         # create topology
         self.net = DCNetwork(controller=RemoteController, monitor=False, enable_learning=False)
         self.dc = self.net.addDatacenter("dc1")
 
         # add the command line interface endpoint to each DC (REST API)
-        self.rapi1 = RestApiEndpoint("0.0.0.0", 5001)
+        self.rapi1 = RestApiEndpoint("0.0.0.0", port+1)
         self.rapi1.connectDCNetwork(self.net)
         self.rapi1.connectDatacenter(self.dc)
         # run API endpoint server (in another thread, don't block)
         self.rapi1.start()
 
         # add the SONATA dummy gatekeeper to each DC
-        self.sdkg1 = SonataDummyGatekeeperEndpoint("0.0.0.0", 5000, deploy_sap=False)
+        self.sdkg1 = SonataDummyGatekeeperEndpoint("0.0.0.0", port, deploy_sap=False)
         self.sdkg1.connectDatacenter(self.dc)
         # run the dummy gatekeeper (in another thread, don't block)
         self.sdkg1.start()
@@ -106,11 +106,11 @@
 
 def main(args):
     setLogLevel('info')  # set Mininet loglevel
-    p = Profiling()
+    p = Profiling(args.get('port'))
 
 
 if __name__ == '__main__':
     parser = argparse.ArgumentParser(description="Run a simple topology")
-    parser.add_argument('--time', '-t', metavar='seconds', type=float, help='a time limit', default=-1, required=False, dest='time')
+    parser.add_argument('--port', '-p', type=int, help='the port for the REST interface', default=5000, required=False, dest='port')
     arg_list = vars(parser.parse_args(sys.argv[1:]))
     main(arg_list)
diff --git a/src/emuvim/examples/sonata_y1_demo_topology_1.py b/src/emuvim/examples/sonata_y1_demo_topology_1.py
index f725225..4098855 100755
--- a/src/emuvim/examples/sonata_y1_demo_topology_1.py
+++ b/src/emuvim/examples/sonata_y1_demo_topology_1.py
@@ -43,7 +43,7 @@
 
 def create_topology1():
     # create topology
-    net = DCNetwork(controller=RemoteController, monitor=False, enable_learning=False)
+    net = DCNetwork(controller=RemoteController, monitor=False, enable_learning=True)
     dc1 = net.addDatacenter("dc1")
     dc2 = net.addDatacenter("dc2")
     s1 = net.addSwitch("s1")
