diff --git a/onos-build-vm.py b/onos-build-vm.py
index 3695fda..62bb7e6 100755
--- a/onos-build-vm.py
+++ b/onos-build-vm.py
@@ -23,7 +23,7 @@
 def installONOS( vm, prompt=Prompt ):
     # start with sendline
     #TODO consider resizing the HDD
-    url = 'https://gerrit.onlab.us/gitweb?p=ONOS-VM.git;a=blob_plain;hb=refs/heads/master;f=vm-setup.sh'
+    url = 'https://gerrit.onlab.us/gitweb?p=ONOS-VM.git;a=blob_plain;hb=refs/heads/mininet-tutorial;f=vm-setup.sh'
     vm.sendline( 'wget -O vm-setup.sh "%s" | bash' % url )
     vm.expect( prompt, timeout=20 )
     vm.sendline( 'bash vm-setup.sh' )
@@ -36,7 +36,7 @@
     assert 'disk image' in output
     return os.stat( vmdk )[ ST_SIZE ]
 
-def buildONOS( image, out, flavor='raring64server', installMemory=1024, ovfMemory=2048  ):
+def buildONOS( image, out, flavor='trusty64server', installMemory=1024, ovfMemory=1024  ):
     if not image:
         # build VM from flavor
         #build( flavor )
@@ -50,18 +50,18 @@
     print osname, osid
 
     ovf = generateOVF( name=ovfname, osname=osname, osid=osid,
-                       diskname=out+'.vmdk', disksize=size, mem=2048, cpus=4,
-                       vmname='ONOS-VM', vminfo='An ONOS VM' )
+                       diskname=out+'.vmdk', disksize=size, mem=ovfMemory, cpus=1,
+                       vmname='Mininet-Tutorial', vminfo='Mininet Tutorial VM' )
     log( '* Generated OVF descriptor file', ovf )
 
 if __name__ == '__main__':
-    parser = argparse.ArgumentParser( description='ONOS VM build script' )
+    parser = argparse.ArgumentParser( description='Mininet Tutorial VM build script' )
     parser.add_argument( '-i', '--image', metavar='image', required=True,
                          help='Build from an existing VM image' )
-    parser.add_argument( '-f', '--flavor', default='raring64server',
-                         help='VM flavor to build (e.g. raring64server)' )
+    parser.add_argument( '-f', '--flavor', default='trusty64server',
+                         help='VM flavor to build (e.g. trusty64server)' )
     parser.add_argument( 'scripts', nargs='*',
-                         help='VM flavor(s) to build (e.g. raring64server)' )
+                         help='VM flavor(s) to build (e.g. trusty64server)' )
     parser.add_argument( '-z', '--zip', action='store_true',
                          help='archive .ovf and .vmdk into .zip file' )
     parser.add_argument( '-o', '--out', required=True,
diff --git a/vm-setup.sh b/vm-setup.sh
index ea6e825..bfb49bc 100644
--- a/vm-setup.sh
+++ b/vm-setup.sh
@@ -6,26 +6,29 @@
 ONOS_USER=mininet
 ONOS_USER_HOME=/home/${ONOS_USER}
 
-ECLIPSE_URL=http://ftp.osuosl.org/pub/eclipse/technology/epp/downloads/release/luna/R/eclipse-java-luna-R-linux-gtk-x86_64.tar.gz
-
 sudo apt-get update
 
-# ------------- Install ONOS Dependencies -------------
-sudo apt-get install -y openjdk-7-jdk
-sudo apt-get install -y maven
+# -------------- Bufferbloat Install ----------
 
-# Not needed: Adding JAVA_HOME and adding java/bin to PATH
-#cat << EOF >> $ONOS_USER_HOME/.profile
-#JAVA_HOME=/usr/lib/jvm/java-7-openjdk-amd64
-#PATH=\$PATH:\$JAVA_HOME/bin
-#EOF
+cd ~
+git clone https://bitbucket.org/huangty/cs144_bufferbloat.git
+sudo apt-get -y install screen
+sudo apt-get -y install python-matplotlib
 
-# Install Zookeeper
-wget http://apache.osuosl.org/zookeeper/zookeeper-3.4.6/zookeeper-3.4.6.tar.gz
-tar xvzf zookeeper-3.4.6.tar.gz
+# -------------- BGP-attack Install -----------
 
-# CLI dependencies
-sudo apt-get install -y python-flask python-cmd2 python-pyparsing
+git clone https://bitbucket.org/jvimal/bgp.git
+cd bgp
+./install.sh
+cd ~
+
+# ------------- DHCP demo Install ------------
+
+git clone https://bitbucket.org/lantz/cs144-dhcp.git
+cd cs144-dhcp
+# TODO fix this
+#sudo ./dhcp.py --check-required
+cd ~
 
 # -------------- Setup Desktop ----------------
 sudo apt-get install -y xorg lxde
@@ -41,16 +44,16 @@
 
 mkdir -p ${DESKTOP}
 
-cat > ${DESKTOP}/Eclipse << EOF
-[Desktop Entry]
-Encoding=UTF-8
-Type=Application
-Name=Eclipse
-Name[en_US]=Eclipse
-Icon=/opt/eclipse/icon.xpm
-Exec=/usr/bin/eclipse
-Comment[en_US]=
-EOF
+#cat > ${DESKTOP}/Eclipse << EOF
+#[Desktop Entry]
+#Encoding=UTF-8
+#Type=Application
+#Name=Eclipse
+#Name[en_US]=Eclipse
+#Icon=/opt/eclipse/icon.xpm
+#Exec=/usr/bin/eclipse
+#Comment[en_US]=
+#EOF
 
 cat > ${DESKTOP}/Terminal << EOF
 [Desktop Entry]
@@ -63,17 +66,7 @@
 Comment[en_US]=
 EOF
 
-cat > ${DESKTOP}/Gerrit << EOF
-[Desktop Entry]
-Encoding=UTF-8
-Type=Application
-Name=ONOS Gerrit
-Name[en_US]=ONOS Gerrit
-Icon=internet-web-browser
-Exec=/usr/bin/chromium-browser http://gerrit.onlab.us
-Comment[en_US]=
-EOF
-
+#TODO
 cat > ${DESKTOP}/Docs << EOF
 [Desktop Entry]
 Encoding=UTF-8
@@ -104,15 +97,3 @@
 sudo dpkg-reconfigure -f noninteractive wireshark-common
 sudo usermod -a -G wireshark mininet
 
-sudo apt-get install -y git-review
-
-wget -c -N -O /tmp/eclipse.tar.gz ${ECLIPSE_URL}
-tar xzf /tmp/eclipse.tar.gz
-sudo mv eclipse /opt
-sudo ln -s /opt/eclipse/eclipse /usr/bin/eclipse
-
-# ------------ Change username and hostname ---------------
-echo 'mininet:onos' | sudo chpasswd
-sudo mv /home/mininet /home/onos
-sudo sed -i 's/mininet/onos/g' /etc/group /etc/gshadow /etc/hosts /etc/hostname /etc/passwd /etc/shadow /etc/sudoers
-
