diff --git a/Vagrantfile b/Vagrantfile
index 2efc999..8d9b971 100644
--- a/Vagrantfile
+++ b/Vagrantfile
@@ -125,9 +125,35 @@
      echo "Running son-emu unit tests to validate installation"
      cd /home/vagrant/son-emu
      sudo python setup.py develop
-     sudo py.test -v
+     sudo py.test -v src/emuvim/test/unittests
+
+     # install son-cli
+     sudo apt-get install -y python-pip python-dev
+     sudo apt-get install -y python3.4 python3-dev libffi-dev libssl-dev libyaml-dev build-essential
+     sudo pip install virtualenv 
+     cd /home/vagrant
+     git clone https://github.com/sonata-nfv/son-cli.git
+     cd son-cli
+     virtualenv -p /usr/bin/python3.4 venv
+     source venv/bin/activate
+     python bootstrap.py
+     bin/buildout
+
+     # clone son-examples (disabled until repo goes public)
+     #cd /home/vagrant
+     #git clone https://github.com/sonata-nfv/son-examples.git
+
+     # pre-fetch sonata example vnfs from DockerHub
+     echo "Fetching SONATA example VNF container from DockerHub/sonatanfv"
+     sudo docker pull sonatanfv/sonata-empty-vnf 
+     sudo docker pull sonatanfv/sonata-iperf3-vnf 
+     sudo docker pull sonatanfv/sonata-snort-ids-vnf
+     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
   SHELL
 
diff --git a/src/emuvim/cli/rest/compute.py b/src/emuvim/cli/rest/compute.py
index cdc0b04..b92fd4f 100755
--- a/src/emuvim/cli/rest/compute.py
+++ b/src/emuvim/cli/rest/compute.py
@@ -77,24 +77,17 @@
             if len(c) > 1:
                 name = c[0]
                 status = c[1]
-                eth0ip = None
-                eth0status = "down"
-                if len(status.get("network")) > 0:
-                    eth0ip = status.get("network")[0].get("ip")
-                    eth0status = "up" if status.get(
-                        "network")[0].get("up") else "down"
+                eth0ip = status.get("docker_network", "-")
                 table.append([status.get("datacenter"),
                               name,
                               status.get("image"),
                               eth0ip,
-                              eth0status,
                               status.get("state").get("Status")])
 
         headers = ["Datacenter",
                    "Container",
                    "Image",
-                   "eth0 IP",
-                   "eth0 status",
+                   "docker0",
                    "Status"]
         print(tabulate(table, headers=headers, tablefmt="grid"))
 
@@ -108,7 +101,13 @@
         pp.pprint(list)
 
 
-parser = argparse.ArgumentParser(description='son-emu compute')
+parser = argparse.ArgumentParser(description="""son-emu compute
+    
+    Examples:
+    - son-emu-cli compute start -d dc2 -n client -i sonatanfv/sonata-iperf3-vnf
+    - son-emu-cli list
+    - son-emu-cli compute status -d dc2 -n client
+    """, formatter_class=argparse.RawTextHelpFormatter)
 parser.add_argument(
     "command",
     choices=['start', 'stop', 'list', 'status'],
