diff --git a/Vagrantfile b/Vagrantfile
index 8d9b971..b87a9f5 100644
--- a/Vagrantfile
+++ b/Vagrantfile
@@ -140,8 +140,17 @@
      bin/buildout
 
      # clone son-examples (disabled until repo goes public)
-     #cd /home/vagrant
-     #git clone https://github.com/sonata-nfv/son-examples.git
+     cd /home/vagrant
+     git clone https://github.com/sonata-nfv/son-examples.git
+
+     # prepare VM for some special containers (PF_RING)
+     cd /home/vagrant/son-examples/vnfs/sonata-vtc-vnf-docker/
+     chmod +x prepare_host.sh
+     sudo ./prepare_host.sh
+
+     # place motd
+     cd /home/vagrant/son-emu
+     sudo cp utils/vagrant/motd /etc/motd
 
      # pre-fetch sonata example vnfs from DockerHub
      echo "Fetching SONATA example VNF container from DockerHub/sonatanfv"
@@ -151,10 +160,7 @@
      sudo docker pull sonatanfv/sonata-ovs1-vnf
      sudo docker pull sonatanfv/sonata-ryu-vnf
      sudo docker pull sonatanfv/sonata-vtc-vnf
-
-     # place motd
-     cd /home/vagrant/son-emu
-     sudo cp utils/vagrant/motd /etc/motd
+     sudo docker pull sonatanfv/son-emu-sap
   SHELL
 
   # TODO the native ansible provisioner does not work so we directly call the shell commands
diff --git a/src/emuvim/api/sonata/sap_vnfd.yml b/src/emuvim/api/sonata/sap_vnfd.yml
index c7babd7..2029c4d 100644
--- a/src/emuvim/api/sonata/sap_vnfd.yml
+++ b/src/emuvim/api/sonata/sap_vnfd.yml
@@ -15,7 +15,7 @@
 ##
 virtual_deployment_units:
   - id: "1"
-    vm_image: "sonatanfv/sonata-iperf3-vnf"
+    vm_image: "sonatanfv/son-emu-sap"
     vm_image_format: "docker"
     resource_requirements:
       cpu:
diff --git a/src/emuvim/examples/sonata_y1_demo_topology_1.py b/src/emuvim/examples/sonata_y1_demo_topology_1.py
index b8bb487..f725225 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=True)
+    net = DCNetwork(controller=RemoteController, monitor=False, enable_learning=False)
     dc1 = net.addDatacenter("dc1")
     dc2 = net.addDatacenter("dc2")
     s1 = net.addSwitch("s1")
@@ -59,7 +59,7 @@
     rapi1.start()
 
     # add the SONATA dummy gatekeeper to each DC
-    sdkg1 = SonataDummyGatekeeperEndpoint("0.0.0.0", 5000, deploy_sap=True)
+    sdkg1 = SonataDummyGatekeeperEndpoint("0.0.0.0", 5000, deploy_sap=False)
     sdkg1.connectDatacenter(dc1)
     sdkg1.connectDatacenter(dc2)
     # run the dummy gatekeeper (in another thread, don't block)
diff --git a/src/emuvim/examples/sonata_y1_demo_topology_1_w_ls_and_sap.py b/src/emuvim/examples/sonata_y1_demo_topology_1_w_ls_and_sap.py
new file mode 100644
index 0000000..b13e05a
--- /dev/null
+++ b/src/emuvim/examples/sonata_y1_demo_topology_1_w_ls_and_sap.py
@@ -0,0 +1,83 @@
+"""
+Copyright (c) 2015 SONATA-NFV
+ALL RIGHTS RESERVED.
+
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+    http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+
+Neither the name of the SONATA-NFV [, ANY ADDITIONAL AFFILIATION]
+nor the names of its contributors may be used to endorse or promote
+products derived from this software without specific prior written
+permission.
+
+This work has been performed in the framework of the SONATA project,
+funded by the European Commission under Grant number 671517 through
+the Horizon 2020 and 5G-PPP programmes. The authors would like to
+acknowledge the contributions of their colleagues of the SONATA
+partner consortium (www.sonata-nfv.eu).
+"""
+"""
+A simple topology with two PoPs for the y1 demo story board.
+
+        (dc1) <<-->> s1 <<-->> (dc2)
+
+- SAP deployment enabled
+- learning switch enabled
+"""
+
+import logging
+from mininet.log import setLogLevel
+from emuvim.dcemulator.net import DCNetwork
+from emuvim.api.rest.rest_api_endpoint import RestApiEndpoint
+from emuvim.api.sonata import SonataDummyGatekeeperEndpoint
+from mininet.node import RemoteController
+
+logging.basicConfig(level=logging.INFO)
+
+
+def create_topology1():
+    # create topology
+    net = DCNetwork(controller=RemoteController, monitor=False, enable_learning=True)
+    dc1 = net.addDatacenter("dc1")
+    dc2 = net.addDatacenter("dc2")
+    s1 = net.addSwitch("s1")
+    net.addLink(dc1, s1, delay="10ms")
+    net.addLink(dc2, s1, delay="20ms")
+
+    # add the command line interface endpoint to each DC (REST API)
+    rapi1 = RestApiEndpoint("0.0.0.0", 5001)
+    rapi1.connectDCNetwork(net)
+    rapi1.connectDatacenter(dc1)
+    rapi1.connectDatacenter(dc2)
+    # run API endpoint server (in another thread, don't block)
+    rapi1.start()
+
+    # add the SONATA dummy gatekeeper to each DC
+    sdkg1 = SonataDummyGatekeeperEndpoint("0.0.0.0", 5000, deploy_sap=True)
+    sdkg1.connectDatacenter(dc1)
+    sdkg1.connectDatacenter(dc2)
+    # run the dummy gatekeeper (in another thread, don't block)
+    sdkg1.start()
+
+    # start the emulation platform
+    net.start()
+    net.CLI()
+    net.stop()
+
+
+def main():
+    setLogLevel('info')  # set Mininet loglevel
+    create_topology1()
+
+
+if __name__ == '__main__':
+    main()
