diff --git a/dist-setup.sh b/dist-setup.sh
index d521c9c..89f02c6 100644
--- a/dist-setup.sh
+++ b/dist-setup.sh
@@ -27,7 +27,6 @@
 echo "export KARAF_TAR=/home/mininet/apache-karaf-3.0.5.tar.gz" >> ~/.bashrc
 echo "cell 3node > /dev/null" >> ~/.bashrc
 
-
 cat > ~/startmn.sh << EOF
 #!/bin/bash
 sudo python ~/onos/tools/test/topos/sol.py \$OC1 \$OC2 \$OC3
diff --git a/install-base.sh b/install-base.sh
index d9d0d57..50f973c 100755
--- a/install-base.sh
+++ b/install-base.sh
@@ -5,8 +5,10 @@
 #
 # This script builds a base ONOS VM. This is basically just an Ubuntu VM with ONOS's dependencies installed.
 
-oracle-java8-installer shared/accepted-oracle-license-v1-1 select true
-oracle-java8-installer shared/accepted-oracle-license-v1-1 seen true
+echo debconf shared/accepted-oracle-license-v1-1 select true | sudo debconf-set-selections
+echo debconf shared/accepted-oracle-license-v1-1 seen true | sudo debconf-set-selections
+
+sudo apt-get install -y software-properties-common python-software-properties
 
 sudo add-apt-repository -y ppa:webupd8team/java
 
diff --git a/install-gui.sh b/install-gui.sh
index 663633e..4b6a337 100755
--- a/install-gui.sh
+++ b/install-gui.sh
@@ -20,6 +20,7 @@
 sudo mkdir -p /usr/share/backgrounds
 #TODO: change background
 # Remove wallpaper, change background color
+####################DIR DOES NOT EXIST!
 sudo sed -i 's/wallpaper_mode=1/wallpaper_mode=0/g' /usr/share/lxde/pcmanfm/LXDE.conf
 sudo sed -i 's/desktop_bg=#000000/desktop_bg=#104187/g' /usr/share/lxde/pcmanfm/LXDE.conf
 
diff --git a/onos-build-base.py b/onos-build-base.py
index be26187..64b1578 100755
--- a/onos-build-base.py
+++ b/onos-build-base.py
@@ -37,7 +37,7 @@
     return os.stat( vmdk )[ ST_SIZE ]
 
 def buildOnosVm( image, out, scriptFileName, vmname='ONOS', vminfo='ONOS VM', 
-                 flavor='utopic64server', installMemory=4096, cpuCores=4, ovfMemory=4096  ):
+                 flavor='xenial64server', installMemory=4096, cpuCores=4, ovfMemory=4096  ):
 
     bootAndRun( image, runFunction=install, scriptFileName=scriptFileName, memory=installMemory, cpuCores=cpuCores, outputFile=out )
 
@@ -55,10 +55,10 @@
     parser = argparse.ArgumentParser( description='ONOS 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='trusty64server', required=True,
-                         help='VM flavor to build (e.g. trusty64server)' )
+    parser.add_argument( '-f', '--flavor', default='xenial64server', required=True,
+                         help='VM flavor to build (e.g. xenial64server)' )
     parser.add_argument( 'scripts', nargs='*',
-                         help='VM flavor(s) to build (e.g. trusty64server)' )
+                         help='VM flavor(s) to build (e.g. xenial64server)' )
     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/onos-build-vm.py b/onos-build-vm.py
index 0a411e7..ff04adb 100755
--- a/onos-build-vm.py
+++ b/onos-build-vm.py
@@ -42,7 +42,7 @@
     assert 'disk image' in output
     return os.stat( vmdk )[ ST_SIZE ]
 
-def buildONOS( image, out, flavor='trusty64server', installMemory=2048, ovfMemory=4096  ):
+def buildONOS( image, out, flavor='xenial64server', installMemory=2048, ovfMemory=4096  ):
     if not image:
         # build VM from flavor
         #build( flavor )
@@ -64,10 +64,10 @@
     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='trusty64server',
+    parser.add_argument( '-f', '--flavor', default='xenial64server',
                          help='VM flavor to build (e.g. trusty64server)' )
     parser.add_argument( 'scripts', nargs='*',
-                         help='VM flavor(s) to build (e.g. trusty64server)' )
+                         help='VM flavor(s) to build (e.g. xenial64server)' )
     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/onos-setup.sh b/onos-setup.sh
index 0a5b275..94460a7 100755
--- a/onos-setup.sh
+++ b/onos-setup.sh
@@ -83,7 +83,7 @@
 sudo dpkg-reconfigure -f noninteractive wireshark-common
 
 # Get the wireshark dissector handy
-wget -O /home/mininet/openflow.lua "https://gerrit.onosproject.org/gitweb?p=onos-vm.git;a=blob_plain;hb=refs/heads/onos-tutorial-1.1;f=openflow.lua"
+wget -O /home/mininet/openflow.lua "https://gerrit.onosproject.org/gitweb?p=onos-vm.git;a=blob_plain;hb=refs/heads/onos-tutorial-1.6;f=openflow.lua"
 
 # -------------- Install ONOS ----------------
 
@@ -231,7 +231,7 @@
 
 create_user optical "Optical Tutorial"
 
-OPT_URL='https://gerrit.onosproject.org/gitweb?p=onos-vm.git;a=blob_plain;hb=refs/heads/onos-tutorial-1.1;f=opt-setup.sh'
+OPT_URL='https://gerrit.onosproject.org/gitweb?p=onos-vm.git;a=blob_plain;hb=refs/heads/onos-tutorial-1.6;f=opt-setup.sh'
 wget -O opt-setup.sh $OPT_URL
 sudo -u optical -H sh -c 'cp opt-setup.sh ~/ && cd ~/ && sh opt-setup.sh'
 
diff --git a/vm-setup.sh b/vm-setup.sh
index 260d52f..9bca510 100755
--- a/vm-setup.sh
+++ b/vm-setup.sh
@@ -10,8 +10,10 @@
 
 sudo apt-get update
 =======
-oracle-java8-installer shared/accepted-oracle-license-v1-1 select true
-oracle-java8-installer shared/accepted-oracle-license-v1-1 seen true
+echo debconf shared/accepted-oracle-license-v1-1 select true | sudo debconf-set-selections
+echo debconf shared/accepted-oracle-license-v1-1 seen true | sudo debconf-set-selections
+
+sudo apt-get install -y software-properties-common python-software-properties
 
 sudo add-apt-repository -y ppa:webupd8team/java
 
