diff --git a/Vagrant Files/InstallationInstructions.txt b/Vagrant Files/InstallationInstructions.txt
new file mode 100644
index 0000000000000000000000000000000000000000..0e203ffb6ce7d831e137ba57cf35874bcbcce08b
--- /dev/null
+++ b/Vagrant Files/InstallationInstructions.txt	
@@ -0,0 +1,17 @@
+
+Please ensure that you have installed Vagrant and have a virtual machine hypervisor installed on your host machine.
+Virtualbox is the reccomended hypervisor for this software
+
+
+Scytherbox Installation instructions:
+
+1. Create a new folder on your host machine
+
+2. Copy and paste or extract the contents of this folder into the newly created folder
+
+3. Open Powershell or your text terminal of choice and navigate to the newly created folder.
+
+4. type 'vagrant up' inside the folder.
+
+5. Allow time for Vagrant to download the base box and apply the provisioners to the box, this may take several minutes.
+
diff --git a/Vagrant Files/Vagrantfile b/Vagrant Files/Vagrantfile
index e60ed78a5ef3cec7f0c6ed65e1c7085cc6eb1682..653676ec7069e352313b6c1996e2364e6c5aed57 100644
--- a/Vagrant Files/Vagrantfile	
+++ b/Vagrant Files/Vagrantfile	
@@ -65,9 +65,10 @@ Vagrant.configure("2") do |config|
   # Enable provisioning with a shell script. Additional provisioners such as
   # Ansible, Chef, Docker, Puppet and Salt are also available. Please see the
   # documentation for more information about their specific syntax and use.
-    config.vm.provision "file", source: "files", destination: "/home/vagrant/Desktop"
     config.vm.provision "shell", path: "scyther.sh"
+    config.vm.provision "file", source: "files", destination: "/home/vagrant/Desktop"
     config.vm.synced_folder "shared", "/home/vagrant/Desktop/SyncedFiles"
+    config.vm.provision "shell", path: "scytherpermissions.sh"
   #   apt-get update
   #   apt-get install -y apache2
   # SHELL
diff --git a/Vagrant Files/files/guide.txt b/Vagrant Files/files/guide.txt
index 390795e502bcb316649a5df31b03beb3ddfa047c..767e6d3db9e6d60172dd6b673b9bef660fda0070 100644
--- a/Vagrant Files/files/guide.txt	
+++ b/Vagrant Files/files/guide.txt	
@@ -1,7 +1,7 @@
 
 To run Scyther, the scyther-gui.py file is recomeded, this can be launched through terminal by typing:
 
-./scyther/scyther-gui.py
+./Desktop/scyther/scyther-gui.py
 
 From here, protocols can be loaded using the file -> open menu or crtl+o. By going Desktop->SyncedFiles->GitLink
 Any protocols in your configured git repo can be opened.
diff --git a/Vagrant Files/scyther.sh b/Vagrant Files/scyther.sh
index 9b041fe993acc76a5bee2a11e79e7dc0df566f0d..ed1172fcf094778e99a036406db4ea82719466bb 100644
--- a/Vagrant Files/scyther.sh	
+++ b/Vagrant Files/scyther.sh	
@@ -1,4 +1,3 @@
 sudo apt-get update
 sudo apt-get -y install graphviz python python-wxgtk3.0
-chmod +x /home/vagrant/Desktop/scyther/scyther/scyther-gui.py
 chmod 777 -R /home/vagrant/Desktop
\ No newline at end of file
diff --git a/Vagrant Files/scytherpermissions.sh b/Vagrant Files/scytherpermissions.sh
new file mode 100644
index 0000000000000000000000000000000000000000..7f5f3d1874f7a01558bf1803ac44c99e2be6f920
--- /dev/null
+++ b/Vagrant Files/scytherpermissions.sh	
@@ -0,0 +1 @@
+chmod +x /home/vagrant/Desktop/scyther/scyther-gui.py
\ No newline at end of file
diff --git a/Vagrant Files/shared/Example Protocols/ImplicitKeyAuthentication.spdl.txt b/Vagrant Files/shared/Example Protocols/ImplicitKeyAuthentication.spdl.txt
new file mode 100644
index 0000000000000000000000000000000000000000..4e0a6556aba3e1161dd28432fbc4f5501ed55682
--- /dev/null
+++ b/Vagrant Files/shared/Example Protocols/ImplicitKeyAuthentication.spdl.txt	
@@ -0,0 +1,49 @@
+hashfunction  hashed;
+usertype Message;
+
+protocol KeyExchange(Monitor,CloudServer)
+{
+	role Monitor
+
+	{
+
+		fresh MonitorValue  : Nonce;
+		fresh Confirm: Message;
+		var CloudServerValue : Nonce;
+
+		send_1(Monitor,CloudServer,{Monitor,MonitorValue}pk(CloudServer));
+		
+		recv_2(CloudServer,Monitor, {CloudServerValue,hashed(MonitorValue),
+		CloudServer}pk(Monitor));
+		
+		send_3(Monitor,CloudServer, hashed(CloudServerValue, Confirm));
+		
+		claim_Monitor1(Monitor,Niagree);
+		claim_Monitor2(Monitor,Nisynch);
+		claim_Monitor3(Monitor,  Secret, MonitorValue);
+		claim_Monitor4(Monitor,  Secret, CloudServerValue);
+
+	}	
+	
+	role CloudServer
+
+	{
+
+		var MonitorValue: Nonce;
+		var Confirm: Message;
+ 		fresh CloudServerValue: Nonce;
+
+		recv_1(Monitor,CloudServer,{Monitor,MonitorValue}pk(CloudServer));
+		
+		send_2(CloudServer,Monitor, {CloudServerValue,hashed(MonitorValue),
+		CloudServer}pk(Monitor));
+		
+		recv_3(Monitor,CloudServer, hashed(CloudServerValue, Confirm));
+
+		claim_CloudServer1(CloudServer,Niagree);
+		claim_CloudServer2(CloudServer,Nisynch);
+		claim_CloudServer3(CloudServer,  Secret, MonitorValue);
+		claim_CloudServer4(CloudServer,  Secret, CloudServerValue);
+
+	}
+}
\ No newline at end of file
diff --git a/Vagrant Files/shared/Example Protocols/MessageEncryption.spdl.txt b/Vagrant Files/shared/Example Protocols/MessageEncryption.spdl.txt
new file mode 100644
index 0000000000000000000000000000000000000000..cdb06a170662c13cb581364a00cd3c3aeabed083
--- /dev/null
+++ b/Vagrant Files/shared/Example Protocols/MessageEncryption.spdl.txt	
@@ -0,0 +1,31 @@
+protocol smartExchange(Meter,Monitor)  
+    {
+
+	role Meter {
+
+    	fresh Message: Nonce;
+    	var Confirm;
+    
+    	send_1(Meter,Monitor,{Message}k(k));
+    	
+    	recv_2(Monitor,Meter,{Confirm}k(k));
+    
+    	claim_Meter1(Meter, Secret, (k));
+    	claim_Meter2(Meter, Secret, Message);
+
+	}
+
+	role Monitor {
+
+    	var Message;
+    	fresh Confirm: Nonce;
+    
+    	recv_1(Meter,Monitor,{Message}k(k));
+    	
+    	send_2(Monitor,Meter,{Confirm}k(k));
+    
+    	claim_Monitor1(Monitor, Secret, (k));
+    	claim_Monitor2(Monitor, Secret, Message);
+    }
+
+}
\ No newline at end of file
diff --git a/Vagrant Files/shared/Example Protocols/MutualAuthentication.spdl.txt b/Vagrant Files/shared/Example Protocols/MutualAuthentication.spdl.txt
new file mode 100644
index 0000000000000000000000000000000000000000..ddb305af8daadfdc16824c2fbf1f84de4999fb03
--- /dev/null
+++ b/Vagrant Files/shared/Example Protocols/MutualAuthentication.spdl.txt	
@@ -0,0 +1,57 @@
+hashfunction  hashed;
+hashfunction sharedkey;
+usertype Message;
+usertype SessionKey;
+
+protocol MutualAuthentication(Monitor,CloudServer)
+{
+	role Monitor {
+
+		fresh MonitorValue  : Nonce;
+		var CloudServerValue : Nonce;
+
+		fresh MonitorInformation : Message;
+		var CloudServerInformation: Message;
+		fresh sharedkey: SessionKey;
+
+
+		send_1(Monitor,CloudServer,{Monitor,MonitorValue}pk(CloudServer));
+		
+		recv_2(CloudServer,Monitor, {CloudServerValue,hashed(MonitorValue),
+		CloudServer}pk(Monitor));
+		
+		send_3(Monitor,CloudServer,{CloudServerValue, MonitorInformation} sharedkey );
+		
+		recv_4(CloudServer,Monitor,{MonitorValue,CloudServerInformation} sharedkey);
+		
+		claim_Monitor1(Monitor,Niagree);
+		claim_Monitor2(Monitor,Nisynch);
+		claim_Monitor3(Monitor,  Secret, CloudServerInformation);
+		claim_Monitor4(Monitor,Alive);
+
+	}	
+	
+	role CloudServer {
+
+		var MonitorValue: Nonce;
+		fresh CloudServerValue: Nonce;
+
+		fresh CloudServerInformation: Message;
+		var MonitorInformation: Message;
+		var sharedkey: SessionKey;
+
+		recv_1(Monitor,CloudServer,{Monitor,MonitorValue}pk(CloudServer));
+		send_2(CloudServer,Monitor, {CloudServerValue,hashed(MonitorValue),
+		CloudServer}pk(Monitor));
+		
+		recv_3(Monitor,CloudServer, {CloudServerValue, MonitorInformation} sharedkey );
+		
+		send_4(CloudServer,Monitor,{MonitorValue,CloudServerInformation} sharedkey);
+		
+		claim_CloudServer1(CloudServer,Niagree);
+		claim_CloudServer2(CloudServer,Nisynch);
+		claim_CloudServer3(CloudServer,  Secret, MonitorInformation);
+		claim_CloudServer4(CloudServer,Alive);
+
+	}
+}
\ No newline at end of file
diff --git a/Vagrant Files/shared/Example Protocols/SessionKeys.spdl.txt b/Vagrant Files/shared/Example Protocols/SessionKeys.spdl.txt
new file mode 100644
index 0000000000000000000000000000000000000000..f470264c04fb510178e559ff90a7b721d7121f4f
--- /dev/null
+++ b/Vagrant Files/shared/Example Protocols/SessionKeys.spdl.txt	
@@ -0,0 +1,49 @@
+hashfunction  hashed;
+hashfunction sharedkey;
+usertype Message;
+usertype SessionKey;
+
+protocol SessionKeys(Monitor,CloudServer) {
+
+	role Monitor {
+	
+		fresh MonitorValue  : Nonce;
+		var CloudServerValue : Nonce;
+
+		fresh info : Message;
+		var info: Message;
+		fresh sharedkey: SessionKey;
+
+		send_1(Monitor,CloudServer,{Monitor,MonitorValue}pk(CloudServer));
+		
+		recv_2(CloudServer,Monitor, {CloudServerValue,hashed(MonitorValue),
+		CloudServer}pk(Monitor));
+		
+		send_3(Monitor,CloudServer, {info} sharedkey);
+		
+		claim_Monitor1(Monitor,Alive);
+		claim_Monitor2(Monitor,Secret, info);
+	}	
+	
+	role CloudServer {
+	
+		var MonitorValue: Nonce;
+		fresh CloudServerValue: Nonce;
+
+		var info: Message;
+		fresh info: Message;
+		fresh sharedkey: SessionKey;
+
+		recv_1(Monitor,CloudServer,{Monitor,MonitorValue}pk(CloudServer));
+		
+		send_2(CloudServer,Monitor, {CloudServerValue,hashed(MonitorValue),
+		CloudServer}pk(Monitor));
+		
+		recv_3(Monitor,CloudServer, {info} sharedkey);
+		
+		claim_CloudServer1(CloudServer,Niagree);
+		claim_CloudServer2(CloudServer,Nisynch);
+		claim_CloudServer3(CloudServer,Alive);
+		claim_CloudServer4(CloudServer,Secret, info);
+	}
+}
\ No newline at end of file