diff --git a/AllStar.txt b/AllStar.txt
new file mode 100644
index 0000000000000000000000000000000000000000..26e7fef6a612a37a14b5c714eb89e0db758c453f
--- /dev/null
+++ b/AllStar.txt
@@ -0,0 +1,68 @@
+Somebody once told me the world is gonna roll me
+I ain't the sharpest tool in the shed
+She was looking kind of dumb with her finger and her thumb
+In the shape of an "L" on her forehead
+
+Well, the years start coming and they don't stop coming
+Fed to the rules and I hit the ground running
+Didn't make sense not to live for fun
+Your brain gets smart but your head gets dumb
+
+So much to do, so much to see
+So what's wrong with taking the back streets?
+You'll never know if you don't go
+You'll never shine if you don't glow
+
+Hey, now, you're an all-star, get your game on, go play
+Hey, now, you're a rock star, get the show on, get paid
+And all that glitters is gold
+Only shooting stars break the mold
+
+It's a cool place and they say it gets colder
+You're bundled up now wait 'til you get older
+But the meteor men beg to differ
+Judging by the hole in the satellite picture
+
+The ice we skate is getting pretty thin
+The water's getting warm so you might as well swim
+My world's on fire. How about yours?
+That's the way I like it and I'll never get bored
+
+Hey, now, you're an all-star, get your game on, go play
+Hey, now, you're a rock star, get the show on, get paid
+And all that glitters is gold
+Only shooting stars break the mold
+
+Go for the moon
+Go for the moon
+Go for the moon
+Go for the moon
+
+Hey, now, you're an all-star, get your game on, go play
+Hey, now, you're a rock star, get the show on, get paid
+And all that glitters is gold
+Only shooting stars
+
+Somebody once asked could I spare some change for gas
+I need to get myself away from this place
+I said yep, what a concept
+I could use a little fuel myself
+And we could all use a little change
+
+Well, the years start coming and they don't stop coming
+Fed to the rules and I hit the ground running
+Didn't make sense not to live for fun
+Your brain gets smart but your head gets dumb
+
+So much to do, so much to see
+So what's wrong with taking the back streets?
+You'll never know if you don't go
+You'll never shine if you don't glow
+
+Hey, now, you're an all star, get your game on, go play
+Hey, now, you're a rock star, get the show on, get paid
+And all that glitters is gold
+Only shooting stars break the mold
+
+And all that glitters is gold
+Only shooting stars break the mold
diff --git a/ClientMain.class b/ClientMain.class
new file mode 100644
index 0000000000000000000000000000000000000000..6bfec562108a26e9f8065e1feb16b11e6c7d8ab8
Binary files /dev/null and b/ClientMain.class differ
diff --git a/ClientMain.java b/ClientMain.java
index 10a4789763510688bf21b2607809181eea710c6c..e9fd2c50d9896d2080b5b0318331f80cf5ff7560 100644
--- a/ClientMain.java
+++ b/ClientMain.java
@@ -42,26 +42,36 @@ public class ClientMain {
 		
 			try { client.connect(); } catch(IOException e) { e.printStackTrace(); return; }
 			
+			String[] files = {"AllStar.txt", "Unknown.txt", "PumpkinHill.txt", "SnowHalation.txt", "Grandad.txt"};
+			
+			for(String file : files) {
+				try { client.store(new File(file)); } catch(IOException e) { e.printStackTrace(); }
+			}
+			
+			/*
+			
 			try { list(client); } catch(IOException e) { e.printStackTrace(); }
 			
-			try { client.store(new File("Clipboard01.pdf")); } catch(IOException e) { e.printStackTrace(); }
+			try { client.store(new File("AllStar.txt")); } catch(IOException e) { e.printStackTrace(); }
 			
-			try { client.store(new File("Clipboard01.pdf")); } catch(IOException e) { e.printStackTrace(); }
+			try { client.store(new File("AllStar.txt")); } catch(IOException e) { e.printStackTrace(); }
 
-			try { client.store(new File("Clipboard01.jpg")); } catch(IOException e) { e.printStackTrace(); }
+			try { client.store(new File("Unknown.txt")); } catch(IOException e) { e.printStackTrace(); }
 			
+			*/
 			String list[] = null;
 			try { list = list(client); } catch(IOException e) { e.printStackTrace(); }
 			
 			if (list != null)
 				for (String filename : list)
 					try { client.load(filename, downloadFolder); } catch(IOException e) { e.printStackTrace(); }
-			
+			/*
 			if (list != null)
 				for (String filename : list)
 					try { client.remove(filename); } catch(IOException e) { e.printStackTrace(); }
 			
 			try { list(client); } catch(IOException e) { e.printStackTrace(); }
+			*/
 			
 		} finally {
 			if (client != null)
diff --git a/Controller$1AcksReceived.class b/Controller$1AcksReceived.class
new file mode 100644
index 0000000000000000000000000000000000000000..1adda894aae6bd39f23590b769ff4b17e6e27eb6
Binary files /dev/null and b/Controller$1AcksReceived.class differ
diff --git a/Controller$IndexEntry.class b/Controller$IndexEntry.class
index adc524c042879907e90d45d3d52b889b6660c7ad..cbc567e13ec9f706a810482255578779dc3de8f2 100644
Binary files a/Controller$IndexEntry.class and b/Controller$IndexEntry.class differ
diff --git a/Controller$RebalanceThread.class b/Controller$RebalanceThread.class
new file mode 100644
index 0000000000000000000000000000000000000000..baac4d023e6eb8665bfeee1db52922e76ee0bdf7
Binary files /dev/null and b/Controller$RebalanceThread.class differ
diff --git a/Controller$Reloader.class b/Controller$Reloader.class
index 1778f421b3e1ecd1109fa137402893ab772a7d5e..5f060a69a794d4dab23d304ce135ebe0440721fd 100644
Binary files a/Controller$Reloader.class and b/Controller$Reloader.class differ
diff --git a/Controller.class b/Controller.class
index 86c939b219a47dffd1fcd6905d10b5000029bee8..a6268bbbbd9df3b25bba137bd95105e820efe4aa 100644
Binary files a/Controller.class and b/Controller.class differ
diff --git a/Controller.java b/Controller.java
index 12eb9b80571c7407410d1febff722dca6fbcc4a9..611fb5da299f520dbe32468abb739e7bc9dc187b 100644
--- a/Controller.java
+++ b/Controller.java
@@ -21,16 +21,12 @@ public class Controller {
 		protected List<Integer> storedBy;
 		protected int numberToStore;
 		protected String status;
-		protected Object storeAckLock;
-		protected List<Reloader> clientLoadList;
 		
 		public IndexEntry() {
 			filesize = -1;
 			storedBy = Collections.synchronizedList(new ArrayList<Integer>());
 			numberToStore = 0;
 			status = "store in progress";
-			storeAckLock = new Object();
-			clientLoadList = new ArrayList<Reloader>();
 		}
 		
 		public synchronized void setFilesize(int filesize) {
@@ -41,24 +37,24 @@ public class Controller {
 			return filesize;
 		}
 		
-		public void addStoredBy(int dstore) {
+		public synchronized void addStoredBy(int dstore) {
 			storedBy.add(Integer.valueOf(dstore));
-			if(storedBy.size() == numberToStore) storeAckLock.notify();
+			if(storedBy.size() >= numberToStore) notifyAll();
 		}
 		
-		public void addStoredBy(List<Integer> dstores) {
+		public synchronized void addStoredBy(List<Integer> dstores) {
 			storedBy.addAll(dstores);
-			if(storedBy.size() == numberToStore) storeAckLock.notify();
+			if(storedBy.size() >= numberToStore) notifyAll();
 		}
 		
-		public void removeStoredBy(int dstore) {
+		public synchronized void removeStoredBy(int dstore) {
 			storedBy.remove(Integer.valueOf(dstore));
-			if(storedBy.size() == 0) storeAckLock.notify();
+			if(storedBy.isEmpty()) notifyAll();
 		}
 		
-		public void removeStoredBy(List<Integer> dstores) {
+		public synchronized void removeStoredBy(List<Integer> dstores) {
 			storedBy.removeAll(dstores);
-			if(storedBy.size() == 0) storeAckLock.notify();
+			if(storedBy.isEmpty()) notifyAll();
 		}
 		
 		public List<Integer> getStoredBy() {
@@ -76,26 +72,16 @@ public class Controller {
 		public synchronized String getStatus() {
 			return status;
 		}
-		
-		public Object getLock() {
-			return storeAckLock;
-		}
-		
-		public List<Reloader> getLoadList() {
-			return clientLoadList;
-		}
 	}
 	
-	protected class Reloader {
-		public boolean reload;
-		public Reloader() {
-			reload = false;
-		}
+	protected class Reloader extends ArrayList<Integer> {
+		public int filesize;
 	}
 	
 	protected Map<Integer,DstoreConnection> dstores;
-	protected Map<Integer,String[]> rebalanceMessages;
+	protected Map<Integer,List<String>> rebalanceMessages;
 	protected Map<String,IndexEntry> index;
+	protected Map<Socket,Reloader> loadRequests;
 	
 	public Controller(int cport, int rFactor, int timeout, int rebalancePeriod) {
 		this.cport = cport;
@@ -103,7 +89,8 @@ public class Controller {
 		this.timeout = timeout;
 		this.rebalancePeriod = rebalancePeriod;
 		dstores = Collections.synchronizedMap(new HashMap<Integer,DstoreConnection>());
-		index = new HashMap<String,IndexEntry>();
+		index = Collections.synchronizedMap(new HashMap<String,IndexEntry>());
+		loadRequests = Collections.synchronizedMap(new HashMap<Socket,Reloader>());
 	}
 	
 	public static void main(String[] args) {
@@ -136,22 +123,44 @@ public class Controller {
 	
 	public void start() {
 		try {
+			Thread rebalanceThread = new Thread(new RebalanceThread());
+			rebalanceThread.start();
+			
 			ServerSocket server = new ServerSocket(cport);
 			while(true) {
 				try {
 					Socket client = server.accept();
 					BufferedReader in = new BufferedReader(new InputStreamReader(client.getInputStream()));
 					String[] message = in.readLine().split(" ");
-					if(dstores.size() < rFactor && !message[0].equals("JOIN")) {
-						PrintWriter out = new PrintWriter(client.getOutputStream());
-						out.println("ERROR");
-						out.flush();
-						out.close();
+					if(message[0].equals("JOIN")) {
+						dstores.put(Integer.parseInt(message[1]), new DstoreConnection(client));
+						System.out.println("Dstore at " + message[1] + " joined");
+						try {rebalanceThread.interrupt();} catch(SecurityException e) {e.printStackTrace();}
 					}
 					else {
-						handleMessage(message, client);
+						System.out.println("A new client has joined");
+						new Thread(() -> {
+							try {
+								handleMessage(message, client);
+							}
+							catch(Exception e) {
+								e.printStackTrace();
+							}
+							
+							while(!client.isClosed()) {
+								try {
+									String clientMessage = in.readLine();
+									if(clientMessage != null) {
+										handleMessage(clientMessage.split(" "), client);
+									}
+								}
+								catch(Exception e) {
+									e.printStackTrace();
+								}
+							}
+							System.out.println("Client closed");
+						}).start();
 					}
-					in.close();
 				}
 				catch(Exception e) {
 					//Log error
@@ -165,20 +174,36 @@ public class Controller {
 		}
 	}
 	
+	protected class RebalanceThread implements Runnable {
+		public void run() {
+			while(true) {
+				try {Thread.sleep(rebalancePeriod);} catch(InterruptedException e) {
+					try {rebalance();} catch(Exception ee) {ee.printStackTrace();}
+				}
+				try {
+					if(dstores.size() >= rFactor) {
+						rebalance();
+					}
+				}
+				catch(Exception e) {e.printStackTrace();}
+			}
+		}
+	}
+	
 	void handleMessage(String[] message, Socket client) throws Exception {
-		if(message[0].equals("JOIN")) {
-			dstores.put(Integer.parseInt(message[1]), new DstoreConnection(client));
-			System.out.println("Dstore at " + message[1] + " joined");
-			rebalance();
+		if(dstores.size() < rFactor) {
+			PrintWriter out = new PrintWriter(client.getOutputStream());
+			out.println("ERROR_NOT_ENOUGH_DSTORES");
+			out.flush();
 		}
 		else if(message[0].equals("STORE")) {
-			store(client, message[1]);
+			store(client, message[1], message[2]);
 		}
 		else if(message[0].equals("LOAD")) {
 			load(client, message[1]);
 		}
 		else if(message[0].equals("RELOAD")) {
-			reload(message[1]);
+			sendLoadFrom(client, message[1]);
 		}
 		else if(message[0].equals("REMOVE")) {
 			remove(client, message[1]);
@@ -191,43 +216,52 @@ public class Controller {
 		}
 	}
 	
-	void store(Socket client, String filename) throws Exception {
-		new Thread(() -> {
-			try {
-				if(index.containsKey(filename)) {
-					PrintWriter out = new PrintWriter(client.getOutputStream());
-					out.println("ERROR ALREADY_EXISTS " + filename);
-					out.flush();
-					out.close();
-					return;
-				}
-				
-				//Update index to "store in progress"
-				IndexEntry entry = new IndexEntry();
-				index.put(filename, entry);
-				
-				//Select Dstores
-				int[] storesToStore = new int[rFactor];
-				synchronized(dstores) {
-					Iterator<Integer> it = dstores.keySet().iterator();
-					for(int i=0; i<rFactor; i++) {
-						Integer thisStore = it.next();
-						storesToStore[i] = thisStore.intValue();
-					}
-				}
-				entry.setNumberToStore(rFactor);
-				
-				//Send STORE_TO message
+	void store(Socket client, String filename, String filesizeString) throws Exception {
+		int filesize = -1;
+		try {
+			filesize = Integer.parseInt(filesizeString);
+			if(filesize < 1) {
+				//Log error
+			}
+		}
+		catch(NumberFormatException e) {
+			//Log error
+		}
+		
+		try {
+			if(index.containsKey(filename)) {
 				PrintWriter out = new PrintWriter(client.getOutputStream());
-				out.println("STORE_TO");
+				out.println("ERROR_FILE_ALREADY_EXISTS " + filename);
 				out.flush();
-				for(int port : storesToStore) {
-					out.println(" " + port);
-					new Thread(() -> {
-						String[] message = dstores.get(Integer.valueOf(port)).receive().split(" ");
-						if(message[0].equals("STORE_ACK")) {
+				return;
+			}
+			
+			//Update index to "store in progress"
+			IndexEntry entry = new IndexEntry();
+			index.put(filename, entry);
+			entry.setFilesize(filesize);
+			
+			//Select Dstores
+			Integer[] storesToStore = new Integer[rFactor];
+			synchronized(dstores) {
+				Iterator<Integer> it = dstores.keySet().iterator();
+				for(int i=0; i<rFactor; i++) {
+					storesToStore[i] = it.next();
+				}
+			}
+			entry.setNumberToStore(rFactor);
+			
+			//Send STORE_TO message
+			PrintWriter out = new PrintWriter(client.getOutputStream());
+			String message = "STORE_TO";
+			for(Integer thisStore : storesToStore) {
+				message = message + " " + thisStore.intValue();
+				new Thread(() -> {
+					try {
+						String[] receivedMessage = dstores.get(thisStore).receive().split(" ");
+						if(receivedMessage[0].equals("STORE_ACK")) {
 							try {
-								storeAck(Integer.valueOf(port), message[1]);
+								storeAck(thisStore, receivedMessage[1]);
 							}
 							catch(Exception e) {
 								//Log error
@@ -236,33 +270,39 @@ public class Controller {
 						else {
 							//Log error
 						}
-					}).start();
-				}
-				
-				//Wait for STORE_ACKs from datastores in storesToStore
+					}
+					catch(NullPointerException e) {
+						removeDstore(thisStore);
+					}
+				}).start();
+			}
+			out.println(message);
+			out.flush();
+			
+			//Wait for STORE_ACKs from datastores in storesToStore
+			synchronized(entry) {
 				try {
-					entry.getLock().wait(timeout);
+					entry.wait(timeout);
 				}
 				catch(InterruptedException e) {
 					e.printStackTrace();
 				}
-				
-				if(entry.getStoredBy().size() < rFactor) {
-					//Log error
-				}
-				
-				//Update index to "store complete"
-				entry.status = "store complete";
-				
-				//Send STORE_COMPLETE message
-				out.println("STORE_COMPLETE");
-				out.flush();
-				out.close();
 			}
-			catch(IOException e) {
-				e.printStackTrace();
+			
+			if(entry.getStoredBy().size() < rFactor) {
+				//Log error
 			}
-		}).start();
+			
+			//Update index to "store complete"
+			entry.status = "store complete";
+			
+			//Send STORE_COMPLETE message
+			out.println("STORE_COMPLETE");
+			out.flush();
+		}
+		catch(IOException e) {
+			e.printStackTrace();
+		}
 	}
 	
 	void storeAck(Integer port, String filename) throws Exception {
@@ -276,293 +316,322 @@ public class Controller {
 	}
 	
 	void load(Socket client, String filename) throws Exception {
-		new Thread(() -> {
-			try {
-				if(!index.containsKey(filename)) {
-					PrintWriter out = new PrintWriter(client.getOutputStream());
-					out.println("ERROR DOES_NOT_EXIST");
-					out.flush();
-					out.close();
-					return;
-				}
-				
-				//Select a Dstore which contains the file
-				IndexEntry thisEntry = index.get(filename);
-				int thisStore = thisEntry.storedBy.get(0).intValue();
-				int thisSize = thisEntry.filesize;
-				
-				//Send LOAD_FROM message
+		try {
+			if(!index.containsKey(filename)) {
 				PrintWriter out = new PrintWriter(client.getOutputStream());
-				out.println("LOAD_FROM " + thisStore + " " + thisSize);
+				out.println("ERROR DOES_NOT_EXIST");
 				out.flush();
-				
-				Reloader reloadLock = new Reloader();
-				thisEntry.getLoadList().add(reloadLock);
-				int trials = 0;
-				while(true) {
-					try {
-						reloadLock.wait(10 * timeout);
-					}
-					catch(InterruptedException e) {
-						e.printStackTrace();
-					}
-					trials ++;
-					if(trials >= rFactor || !reloadLock.reload) break;
-					out.println("LOAD_FROM " + thisEntry.storedBy.get(trials).intValue() + " " + thisSize);
-					out.flush();
-					reloadLock.reload = false;
-				}
-				
-				thisEntry.getLoadList().remove(reloadLock);
-				if(trials >= rFactor && reloadLock.reload) {
-					out.println("ERROR LOAD");
-					out.flush();
-				}
-				
-				out.close();
+				return;
 			}
-			catch(IOException e) {
-				e.printStackTrace();
+			
+			//Select a Dstore which contains the file
+			IndexEntry thisEntry = index.get(filename);
+			Reloader storedBy = new Reloader();
+			storedBy.filesize = thisEntry.getFilesize();
+			Iterator<Integer> it = thisEntry.getStoredBy().iterator();
+			while(it.hasNext()) {
+				Integer d = it.next();
+				storedBy.add(d);
+				System.out.println("Dstore " + d + " added to load list");
 			}
-		}).start();
+			loadRequests.put(client,storedBy);
+			
+			//Send LOAD_FROM message
+			sendLoadFrom(client, filename);
+		}
+		catch(IOException e) {
+			e.printStackTrace();
+		}
 	}
 	
-	void reload(String filename) {
-		new Thread(() -> {
-			for(Reloader r : index.get(filename).getLoadList()) {
-				r.reload = true;
-				r.notify();
+	void sendLoadFrom(Socket client, String filename) {
+		try {
+			PrintWriter out = new PrintWriter(client.getOutputStream());
+			Reloader storedBy = loadRequests.get(client);
+			System.out.println("Load requested for file " + filename + ", there are " + storedBy.size() + " dstores to select from");
+			if(storedBy.isEmpty()) {
+				out.println("ERROR_LOAD");
 			}
-		}).start();
+			else {
+				Integer thisStore = storedBy.get(0);
+				storedBy.remove(thisStore);
+				out.println("LOAD_FROM " + thisStore + " " + storedBy.filesize);
+			}
+			out.flush();
+		}
+		catch(IOException e) {
+			e.printStackTrace();
+		}
 	}
 	
 	void remove(Socket client, String filename) throws Exception {
-		new Thread(() -> {
-			try {
-				if(!index.containsKey(filename)) {
-					PrintWriter clientOut = new PrintWriter(client.getOutputStream());
-					clientOut.println("ERROR DOES_NOT_EXIST");
-					clientOut.flush();
-					clientOut.close();
-					return;
-				}
-				
-				//Update index to "remove in progress"
-				IndexEntry entry = index.get(filename);
-				entry.status = "remove in progress";
-				
-				//Send REMOVE message to all Dstores storing the file
-				for(Integer dstore : entry.getStoredBy()) {
-					new Thread(() -> {
-						String[] message = dstores.get(dstore).sendAndReceive("REMOVE").split(" ");
+		try {
+			if(!index.containsKey(filename)) {
+				PrintWriter clientOut = new PrintWriter(client.getOutputStream());
+				clientOut.println("ERROR DOES_NOT_EXIST");
+				clientOut.flush();
+				return;
+			}
+			
+			//Update index to "remove in progress"
+			IndexEntry entry = index.get(filename);
+			entry.status = "remove in progress";
+			
+			//Send REMOVE message to all Dstores storing the file
+			for(Integer dstore : entry.getStoredBy()) {
+				new Thread(() -> {
+					try {
+						String[] message = dstores.get(dstore).sendAndReceive("REMOVE " + filename).split(" ");
 						if(message[0].equals("REMOVE_ACK") && message[1].equals(filename)) {
 							entry.removeStoredBy(dstore.intValue());
 						}
 						else {
 							//Log error
 						}
-					}).start();
-				}
-				
-				//Wait for REMOVE_ACKs from all Dstores which were sent the REMOVE message
+					}
+					catch(NullPointerException e) {
+						removeDstore(dstore);
+					}
+				}).start();
+			}
+			
+			//Wait for REMOVE_ACKs from all Dstores which were sent the REMOVE message
+			synchronized(entry) {
 				try {
-					entry.getLock().wait(timeout);
+					entry.wait(timeout);
 				}
 				catch(InterruptedException e) {
 					e.printStackTrace();
 				}
-				
-				if(entry.getStoredBy().size() > 0) {
-					//Log error
-				}
-				
-				//Update index to "remove complete"
-				entry.status = "remove complete";
-				
-				//Send REMOVE_COMPLETE to client
-				PrintWriter clientOut = new PrintWriter(client.getOutputStream());
-				clientOut.println("REMOVE_COMPLETE");
-				clientOut.flush();
-				clientOut.close();
 			}
-			catch(IOException e) {
-				e.printStackTrace();
+			
+			if(entry.getStoredBy().size() > 0) {
+				//Log error
 			}
-		}).start();
+			
+			//Update index to "remove complete"
+			entry.status = "remove complete";
+			index.remove(filename);
+			
+			//Send REMOVE_COMPLETE to client
+			PrintWriter clientOut = new PrintWriter(client.getOutputStream());
+			clientOut.println("REMOVE_COMPLETE");
+			clientOut.flush();
+		}
+		catch(IOException e) {
+			e.printStackTrace();
+		}
 	}
 	
 	void list(Socket client) throws Exception {
-		new Thread(() -> {
-			try {
-				//Send file list to client
-				PrintWriter out = new PrintWriter(client.getOutputStream());
-				for(String name : index.keySet()) {
-					out.println(name);
-				}
-				out.flush();
-				out.close();
-			}
-			catch(IOException e) {
-				e.printStackTrace();
+		try {
+			System.out.println("Fetching list...");
+			//Send file list to client
+			String message = "LIST ";
+			for(String name : index.keySet()) {
+				message = message + name + " ";
 			}
-		}).start();
+			PrintWriter out = new PrintWriter(client.getOutputStream());
+			System.out.println("Sending...");
+			out.println(message.trim());
+			out.flush();
+		}
+		catch(IOException e) {
+			e.printStackTrace();
+		}
 	}
 	
 	void rebalance() throws Exception {
-		new Thread(() -> {
-			if(rebalanceMessages != null) return;
-			Map<Integer,List<String>> dstoreFiles = new HashMap<Integer,List<String>>();
-			synchronized(dstoreFiles) {
-				rebalanceMessages = dstoreFiles;
-				try {
-					//Send LIST message to each Dstore and receive their file list
-					for(Integer dstore : dstores.keySet()) {
-						dstoreFiles.put(dstore, new ArrayList<String>());
-						
-						new Thread(() -> {
+		if(rebalanceMessages != null) return;
+		Map<Integer,List<String>> dstoreFiles = new HashMap<Integer,List<String>>();
+		synchronized(dstoreFiles) {
+			rebalanceMessages = dstoreFiles;
+			try {
+				//Send LIST message to each Dstore and receive their file list
+				for(Integer dstore : dstores.keySet()) {
+					dstoreFiles.put(dstore, new ArrayList<String>());
+					
+					new Thread(() -> {
+						try {
 							String[] message = dstores.get(dstore).sendAndReceive("LIST").split(" ");
 							receiveDstoreList(dstore.intValue(), message);
-						}).start();
-					}
-					
-					dstoreFiles.wait(timeout);
-					if(dstoreFiles.size() < dstores.size()) {
-						//Log error
-					}
-					
-					//Create a new file allocation so that:
-					  //Each file appears rFactor times
-					  //Each file appears at most once on each datastore
-					  //Files are evenly distributed (Dstores differ in capacity by at most 1, no 2 datastores have identical file lists)
-					List<Integer> storeOrder = reshuffle(dstoreFiles.keySet());
-					List<String> fileList = new ArrayList<String>();
-					for(Integer i : reshuffle(dstoreFiles.keySet())) {
-						for(String s : dstoreFiles.get(i)) {
-							if(!fileList.contains(s)) {
-								fileList.add(s);
-							}
+						}
+						catch(NullPointerException e) {
+							removeDstore(dstore);
+						}
+					}).start();
+				}
+				
+				dstoreFiles.wait(timeout);
+				if(dstoreFiles.size() < dstores.size()) {
+					//Log error
+				}
+				
+				//Create a new file allocation so that:
+				  //Each file appears rFactor times
+				  //Each file appears at most once on each datastore
+				  //Files are evenly distributed (Dstores differ in capacity by at most 1, no 2 datastores have identical file lists)
+				List<Integer> storeOrder = reshuffle(dstoreFiles.keySet());
+				List<String> fileList = new ArrayList<String>();
+				for(Integer i : reshuffle(dstoreFiles.keySet())) {
+					for(String s : dstoreFiles.get(i)) {
+						if(!fileList.contains(s)) {
+							fileList.add(s);
 						}
 					}
-					
-					Map<Integer,List<String>> requireIndex = new HashMap<Integer,List<String>>();
-					Map<Integer,List<String>> removeIndex = new HashMap<Integer,List<String>>();
-					int pos = 0;
-					int storeSize = (int) Math.ceil((fileList.size() * rFactor) / dstores.size());
-					for(Integer i : dstoreFiles.keySet()) {
-						requireIndex.put(i, new ArrayList<String>());
-						removeIndex.put(i, new ArrayList<String>());
-					}
-					Iterator<Integer> it;
-					for(String file : fileList) {
-						for(int j=0; j<rFactor; j++) {
-							if(it == null || !it.hasNext()) {
-								it = dstoreFiles.keySet().iterator();
-							}
-							//If indexed dstore does not have the file, add it to its requireIndex entry
-							Integer thisStore = it.next();
-							if(!dstoreFiles.get(thisStore).contains(file)) {
-								requireIndex.get(thisStore).add(file);
-							}
+				}
+				
+				Map<Integer,List<String>> requireIndex = new HashMap<Integer,List<String>>();
+				Map<Integer,List<String>> removeIndex = new HashMap<Integer,List<String>>();
+				int pos = 0;
+				int storeSize = (int) Math.ceil((fileList.size() * rFactor) / dstores.size());
+				for(Integer i : dstoreFiles.keySet()) {
+					requireIndex.put(i, new ArrayList<String>());
+					removeIndex.put(i, new ArrayList<String>());
+				}
+				Iterator<Integer> it = null;
+				for(String file : fileList) {
+					for(int j=0; j<rFactor; j++) {
+						if(it == null || !it.hasNext()) {
+							it = dstoreFiles.keySet().iterator();
 						}
-						//Dstores not chosen in the above loop must have an entry added to removeIndex, if they have the file
-						for(int j=0; j<(requireIndex.size() - rFactor); j++) {
-							if(it == null || !it.hasNext()) {
-								it = dstoreFiles.keySet().iterator();
-							}
-							
-							Integer thisStore = it.next();
-							if(dstoreFiles.get(thisStore).contains(file)) {
-								removeIndex.get(thisStore).add(file);
-							}
+						//If indexed dstore does not have the file, add it to its requireIndex entry
+						Integer thisStore = it.next();
+						if(!dstoreFiles.get(thisStore).contains(file)) {
+							requireIndex.get(thisStore).add(file);
 						}
 					}
-					
-					Integer acksReceived = new Integer(0);
-					for(Integer thisStore : storeOrder) {
-						List<String> sendMessages = new ArrayList<String>();
-						for(String file : dstoreFiles.get(thisStore)) {
-							if(isEmptyListMap(requiredFiles)) break;
-							
-							String fileMessage = "";
-							for(Integer otherStore : requiredFiles.keySet()) {
-								if(thisStore.equals(otherStore)) continue;
-								for(String otherFile : requiredFiles.get(otherStore)) {
-									if(file.equals(otherFile)) {
-										requiredFiles.get(otherStore).remove(otherFile);
-										fileMessage = fileMessage + " " + otherStore.toString();
-										break;
-									}
-								}
-							}
-							fileMessage = file + " " + (fileMessage.trim().split(" ").length) + fileMessage;
-							sendMessages.add(fileMessage);
+					//Dstores not chosen in the above loop must have an entry added to removeIndex, if they have the file
+					for(int j=0; j<(requireIndex.size() - rFactor); j++) {
+						if(it == null || !it.hasNext()) {
+							it = dstoreFiles.keySet().iterator();
 						}
 						
-						String message = "REBALANCE " + sendMessages.size();
-						for(String s : sendMessages) {
-							message = message + " " + s;
-						}
-						message = message + " " + removeIndex.get(thisStore).size();
-						for(String f : removeIndex.get(thisStore)) {
-							message = message + " " + f;
+						Integer thisStore = it.next();
+						if(dstoreFiles.get(thisStore).contains(file)) {
+							removeIndex.get(thisStore).add(file);
 						}
+					}
+				}
+				
+				class AcksReceived {
+					int value;
+					public AcksReceived() {
+						value = 0;
+					}
+					public void incr() {
+						value ++;
+					}
+					public int getValue() {
+						return value;
+					}
+				}
+				AcksReceived acksReceived = new AcksReceived();
+				for(Integer thisStore : storeOrder) {
+					List<String> sendMessages = new ArrayList<String>();
+					for(String file : dstoreFiles.get(thisStore)) {
+						if(isEmptyListMap(requireIndex)) break;
 						
-						//Send message to the Dstore
-						new Thread(() -> {
-							String returnMessage = dstores.get(thisStore).sendAndReceive(message);
+						String fileMessage = "";
+						for(Integer otherStore : requireIndex.keySet()) {
+							if(thisStore.equals(otherStore)) continue;
+							for(String otherFile : requireIndex.get(otherStore)) {
+								if(file.equals(otherFile)) {
+									requireIndex.get(otherStore).remove(otherFile);
+									fileMessage = fileMessage + " " + otherStore.toString();
+									break;
+								}
+							}
+						}
+						fileMessage = file + " " + (fileMessage.trim().split(" ").length) + fileMessage;
+						sendMessages.add(fileMessage);
+					}
+					
+					String message = "REBALANCE " + sendMessages.size();
+					for(String s : sendMessages) {
+						message = message + " " + s;
+					}
+					message = message + " " + removeIndex.get(thisStore).size();
+					for(String f : removeIndex.get(thisStore)) {
+						message = message + " " + f;
+					}
+					
+					//Send message to the Dstore
+					String finalMessage = message;
+					new Thread(() -> {
+						try {
+							String returnMessage = dstores.get(thisStore).sendAndReceive(finalMessage);
 							if(!returnMessage.equals("REBALANCE_COMPLETE")) {
 								//Log error
 							}
 							synchronized(acksReceived) {
-								acksReceived += 1;
-								if(acksReceived.intValue() == storeOrder.size()) {
+								acksReceived.incr();
+								if(acksReceived.getValue() == storeOrder.size()) {
 									acksReceived.notifyAll();
 								}
 							}
-						}).start();
-					}
-					
-					//Wait for REBALANCE_COMPLETE from all Dstores
-					synchronized(acksReceived) {
-						try {
-							acksReceived.wait(timeout);
-							if(acksReceived.intValue < storeOrder.size()) {
-								//Restart rebalance operation
-							}
 						}
-						catch(InterruptedException e) {
-							e.printStackTrace();
+						catch(NullPointerException e) {
+							removeDstore(thisStore);
 						}
-					}
-				}
-				catch(Exception e) {
-					e.printStackTrace();
+					}).start();
 				}
-				finally {
-					rebalanceMessages = null;
+				
+				//Wait for REBALANCE_COMPLETE from all Dstores
+				synchronized(acksReceived) {
+					try {
+						System.out.println("Waiting for REBALANCE_COMPLETE...");
+						acksReceived.wait(timeout);
+						if(acksReceived.getValue() < storeOrder.size()) {
+							//Restart rebalance operation
+						}
+					}
+					catch(InterruptedException e) {
+						e.printStackTrace();
+					}
 				}
 			}
-		}).start();
+			catch(Exception e) {
+				e.printStackTrace();
+			}
+			finally {
+				rebalanceMessages = null;
+			}
+		}
 	}
 	
 	void receiveDstoreList(int port, String[] list) {
 		if(rebalanceMessages == null) return;
 		
-		for(String file : list) {
-			if(!index.containsKey(file)) {
-				//Log error
-				return; //Throw exception?
+		List<String> toList = new ArrayList<String>();
+		if(!list[0].equals("ERROR_EMPTY")) {
+			for(String file : list) {
+				if(!index.containsKey(file)) {
+					//Log error
+					//return; //Throw exception?
+					//Ignore those, there might be new resources a joining Dstore wants to contribute
+					//Then again, there might be malformed messages. Think about this.
+				}
+				toList.add(file);
 			}
 		}
 		
 		synchronized(rebalanceMessages) {
-			rebalanceMessages.put(port, list);
+			rebalanceMessages.put(port, toList);
 			if(rebalanceMessages.size() == dstores.size()) {
 				rebalanceMessages.notify();
 			}
 		}
 	}
 	
+	void removeDstore(Integer dstore) {
+		dstores.remove(dstore);
+		Iterator<IndexEntry> it = index.values().iterator();
+		while(it.hasNext()) {
+			it.next().removeStoredBy(dstore);
+		}
+	}
+	
 	List<Integer> reshuffle(Collection<Integer> col) {
 		List<Integer> list = new ArrayList<Integer>();
 		for(Integer i : col) {
@@ -571,8 +640,8 @@ public class Controller {
 		return list;
 	}
 	
-	boolean isEmptyListMap(Map<T,List<U>> map) {
-		for(List<U> list : map.entrySet()) {
+	<T,U> boolean isEmptyListMap(Map<T,List<U>> map) {
+		for(List<U> list : map.values()) {
 			if(!list.isEmpty()) {
 				return false;
 			}
diff --git a/Dstore.class b/Dstore.class
index f175e51d292f7e107fa06774569a117094b0ff31..d50e2886a2e23df4396911799fb8df9675121560 100644
Binary files a/Dstore.class and b/Dstore.class differ
diff --git a/Dstore.java b/Dstore.java
index 018a925dc83089ee70663b21b142f117db112c29..3fd73525e55128793d249ea0b2c3830ca5892be4 100644
--- a/Dstore.java
+++ b/Dstore.java
@@ -12,17 +12,27 @@ public class Dstore {
 	protected int port; //Port to listen on
 	protected int cport; //Controller's port to talk to
 	protected int timeout; //in milliseconds
-	protected String fileFolder; //Where to store the data locally
+	protected File fileFolder; //Where to store the data locally
 	protected Map<String,Integer> fileSizes;
 	
+	protected Socket controllerSocket;
 	protected BufferedReader controllerIn;
 	protected PrintWriter controllerOut;
 	
-	public Dstore(int port, int cport, int timeout, String fileFolder) {
+	public Dstore(int port, int cport, int timeout, String fileFolderName) throws Exception {
 		this.port = port;
 		this.cport = cport;
 		this.timeout = timeout;
-		this.fileFolder = fileFolder;
+		
+		fileFolder = new File(fileFolderName);
+		if(fileFolder.exists() && !fileFolder.isDirectory()) {
+			throw new Exception("Folder name provided exists as a file and not a directory");
+		}
+		else if(!fileFolder.exists()) {
+			System.out.println("New folder will be created");
+			if(!fileFolder.mkdir()) throw new Exception("Folder could not be created");
+		}
+		
 		fileSizes = new HashMap<String,Integer>();
 	}
 	
@@ -56,9 +66,9 @@ public class Dstore {
 	
 	public void start() {
 		try {
-			Socket socket = new Socket(InetAddress.getLocalHost(), cport);
-			controllerIn = new BufferedReader(new InputStreamReader(socket.getInputStream()));
-			controllerOut = new PrintWriter(socket.getOutputStream());
+			controllerSocket = new Socket(InetAddress.getLocalHost(), cport);
+			controllerIn = new BufferedReader(new InputStreamReader(controllerSocket.getInputStream()));
+			controllerOut = new PrintWriter(controllerSocket.getOutputStream());
 			controllerOut.println("JOIN " + port);
 			controllerOut.flush();
 			
@@ -67,7 +77,7 @@ public class Dstore {
 					try {
 						String message = controllerIn.readLine();
 						if(message != null) {
-							handleMessage(message.split(" "), socket, controllerIn);
+							handleMessage(message.split(" "), controllerSocket);
 						}
 					}
 					catch(Exception e) {
@@ -83,8 +93,7 @@ public class Dstore {
 					Socket client = server.accept();
 					BufferedReader in = new BufferedReader(new InputStreamReader(client.getInputStream()));
 					String[] message = in.readLine().split(" ");
-					handleMessage(message, client, in);
-					in.close();
+					handleMessage(message, client);
 				}
 				catch(Exception e) {
 					//Log error
@@ -97,9 +106,9 @@ public class Dstore {
 		}
 	}
 	
-	void handleMessage(String[] message, Socket client, BufferedReader clientIn) throws Exception {
+	void handleMessage(String[] message, Socket client) throws Exception {
 		if(message[0].equals("STORE")) {
-			store(client, message[1], Integer.parseInt(message[2]), clientIn);
+			store(client, message[1], Integer.parseInt(message[2]));
 		}
 		else if(message[0].equals("LOAD_DATA")) {
 			load(client, message[1]);
@@ -118,16 +127,15 @@ public class Dstore {
 		}
 	}
 	
-	void store(Socket client, String filename, int filesize, BufferedReader in) throws Exception {
+	void store(Socket client, String filename, int filesize) throws Exception {
 		new Thread(() -> {
 			try {
 				//Send ACK message to client
 				PrintWriter out = new PrintWriter(client.getOutputStream());
 				out.println("ACK");
 				out.flush();
-				out.close();
 				
-				FileOutputStream writer = new FileOutputStream(fileFolder + "/" + filename, false);
+				FileOutputStream writer = new FileOutputStream(new File(fileFolder, filename), false);
 				InputStream reader = client.getInputStream();
 				
 				//Receive + write file content from client
@@ -139,10 +147,8 @@ public class Dstore {
 				writer.close();
 				
 				//Send STORE_ACK message to the Controller
-				PrintWriter controllerOut = new PrintWriter(new Socket(InetAddress.getLocalHost(), cport).getOutputStream());
 				controllerOut.println("STORE_ACK " + filename);
 				controllerOut.flush();
-				controllerOut.close();
 				
 				if(fileSizes.containsKey(filename)) fileSizes.remove(filename);
 				fileSizes.put(filename, filesize);
@@ -150,6 +156,9 @@ public class Dstore {
 			catch(IOException e) {
 				e.printStackTrace();
 			}
+			finally {
+				try {client.close();} catch(IOException e) {e.printStackTrace();}
+			}
 		}).start();
 	}
 	
@@ -160,12 +169,13 @@ public class Dstore {
 				PrintWriter out = new PrintWriter(client.getOutputStream());
 				FileInputStream reader;
 				try {
-					reader = new FileInputStream(fileFolder + "/" + filename);
+					reader = new FileInputStream(new File(fileFolder, filename));
 				}
 				catch(FileNotFoundException e) {
 					out.println("ERROR DOES_NOT_EXIST");
 					out.flush();
 					out.close();
+					client.close();
 					return;
 				}
 				
@@ -183,6 +193,9 @@ public class Dstore {
 			catch(IOException e) {
 				e.printStackTrace();
 			}
+			finally {
+				try {client.close();} catch(IOException e) {e.printStackTrace();}
+			}
 		}).start();
 	}
 	
@@ -190,11 +203,11 @@ public class Dstore {
 		new Thread(() -> {
 			try {
 				//Remove the file from fileFolder
-				Path path = new File(fileFolder + "/" + filename).toPath();
+				Path path = new File(fileFolder, filename).toPath();
 				
 				if(Files.deleteIfExists(path)) {
 					//Send REMOVE_ACK message to client (the controller)
-					controllerOut.println("REMOVE_ACK");
+					controllerOut.println("REMOVE_ACK " + filename);
 				}
 				else {
 					//Send DOES NOT EXIST error
@@ -212,20 +225,25 @@ public class Dstore {
 	void list() throws Exception {
 		new Thread(() -> {
 			//Send a list of all files in fileFolder to client (the controller)
-			for(File file : new File(fileFolder).listFiles()) {
-				controllerOut.println(file.getName());
-				controllerOut.flush();
+			String message = "";
+			for(File file : fileFolder.listFiles()) {
+				message = message + " " + file.getName();
 			}
+			if(message.equals("")) message = "ERROR_EMPTY";
+			controllerOut.println(message.trim());
+			controllerOut.flush();
 		}).start();
 	}
 	
 	void rebalance(String[] message) throws Exception {
+		System.out.println("Rebalance message received");
 		new Thread(() -> {
 			//Interpret files to send and files to remove from the message
 			Map<Integer,List<String>> filesToSend;
 			String[] filesToRemove;
 			int index;
 			
+			System.out.println("Interpreting message...");
 			int numberToSend = Integer.parseInt(message[1]);
 			index = 2;
 			filesToSend = new HashMap<Integer,List<String>>();
@@ -252,26 +270,26 @@ public class Dstore {
 				filesToRemove[k] = message[index];
 				index++;
 			}
+			System.out.println("Interpreting complete, will send " + numberToSend + " and remove " + numberToRemove);
 			
 			//Send each file to send to the Dstore at the specified port number
 			for(Integer dstore : filesToSend.keySet()) {
 				for(String filename : filesToSend.get(dstore)) {
 					new Thread(() -> {
 						try {
+							System.out.println("Sending " + filename + " to store " + dstore);
 							Socket socket = new Socket(InetAddress.getLocalHost(), dstore.intValue());
 							PrintWriter out = new PrintWriter(socket.getOutputStream());
 							out.println("STORE " + filename + " " + fileSizes.get(filename));
 							out.flush();
-							out.close();
 							
 							BufferedReader in = new BufferedReader(new InputStreamReader(socket.getInputStream()));
 							if(!in.readLine().equals("ACK")) {
 								//Log error
 							}
-							in.close();
 							
 							byte[] content = new byte[8];
-							FileInputStream fileIn = new FileInputStream(fileFolder + "/" + filename);
+							FileInputStream fileIn = new FileInputStream(new File(fileFolder, filename));
 							OutputStream fileOut = socket.getOutputStream();
 							while(fileIn.read(content) > 0) {
 								fileOut.write(content);
@@ -279,6 +297,8 @@ public class Dstore {
 							}
 							fileIn.close();
 							fileOut.close();
+							in.close();
+							out.close();
 							socket.close();
 						}
 						catch(IOException e) {
@@ -290,12 +310,14 @@ public class Dstore {
 			
 			//Remove each file to remove from fileFolder
 			for(String filename : filesToRemove) {
-				new File(fileFolder + "/" + filename).delete();
+				System.out.println("Removing file " + filename);
+				new File(fileFolder, filename).delete();
 			}
 			
 			//Send REBALANCE_COMPLETE message to client (the controller)
-			controllerOut.print("REBALANCE COMPLETE");
+			controllerOut.println("REBALANCE_COMPLETE");
 			controllerOut.flush();
+			System.out.println("Sent message REBALANCE_COMPLETE");
 			//TO DO: WAIT FOR RESPONSES BEFORE SENDING REBALANCE_COMPLETE
 		}).start();
 	}
diff --git a/DstoreConnection.class b/DstoreConnection.class
index 46f9894507e1969d0e9e198cd8bf1d8fda9c031a..22b19b02f98e1f15e335aad8652e4c0bba7bcf2e 100644
Binary files a/DstoreConnection.class and b/DstoreConnection.class differ
diff --git a/DstoreConnection.java b/DstoreConnection.java
index 2d426a52747b32dcac0edab3a0d2307e129f8ebe..8515615192e1868fa1032b8aaccfe15e32e8606f 100644
--- a/DstoreConnection.java
+++ b/DstoreConnection.java
@@ -24,32 +24,56 @@ public class DstoreConnection {
 			e.printStackTrace();
 			available = false;
 		}
+		catch(NullPointerException e) {
+			System.out.println("Dstore disconnected");
+			available = false;
+		}
 	}
 	
-	public String sendAndReceive(String message) {
+	public String sendAndReceive(String message) throws NullPointerException {
+		System.out.println("Getting lock...");
 		synchronized(this) {
-			if(!available) return "ERROR";
-			writer.println(message);
-			writer.flush();
-			return localReceive();
+			try {
+				System.out.println("Lock acquired");
+				if(!available) return "ERROR";
+				writer.println(message);
+				writer.flush();
+				return localReceive();
+			}
+			catch(NullPointerException e) {
+				System.out.println("Dstore disconnected");
+				available = false;
+				throw new NullPointerException();
+			}
 		}
 	}
 	
-	public String receive() {
+	public String receive() throws NullPointerException {
+		System.out.println("Getting lock...");
 		synchronized(this) {
+			System.out.println("Lock acquired");
 			if(!available) return "ERROR";
 			return localReceive();
 		}
 	}
 	
-	protected String localReceive() {
+	protected String localReceive() throws NullPointerException {
 		try {
-			String returnMessage = reader.readLine();
+			String returnMessage = "";
+			while(returnMessage.equals("")) {
+				returnMessage = reader.readLine();
+			}
+			System.out.println("Controller received " + returnMessage);
 			return returnMessage;
 		}
 		catch(IOException e) {
 			e.printStackTrace();
 			return "";
 		}
+		catch(NullPointerException e) {
+			System.out.println("Dstore disconnected");
+			available = false;
+			throw new NullPointerException();
+		}
 	}
 }
diff --git a/Grandad.txt b/Grandad.txt
new file mode 100644
index 0000000000000000000000000000000000000000..4891fefac0cf249710bf741d61da79973e52b19b
--- /dev/null
+++ b/Grandad.txt
@@ -0,0 +1,14 @@
+(Yabba Dabba Doo!)
+
+Flintstones. Meet the Flintstones.
+They're the modern stone age family.
+From the town of Bedrock,
+They're a page right out of history.
+
+Let's ride with the family down the street.
+Through the courtesy of Fred's two feet.
+
+When you're with the Flintstones
+Have a yabba dabba doo time.
+A dabba doo time.
+We'll have a gay old time.
diff --git a/PumpkinHill.txt b/PumpkinHill.txt
new file mode 100644
index 0000000000000000000000000000000000000000..e2458051c174c0173e4758ece47fe05f97fa6425
--- /dev/null
+++ b/PumpkinHill.txt
@@ -0,0 +1,68 @@
+You know me, the fighting freak Knuckles,
+And we're at Pumpkin Hill,
+You ready?
+
+I ain't gonna let it get to me, I'm just gonna creep,
+Down in Pumpkin Hill I gots to find my lost piece.
+I know that it's here, I can sense it in my feet,
+The great Emerald's power allows me to feel.
+I can't see a thing but it's around somewhere,
+I'm gonna hold my head 'cause I have no fear.
+This probably seems crazy, crazy, a graveyard theory,
+A ghost tried to approach me and got leery.
+
+Asked him a question and he vanished in a second,
+I'm walkin' through valleys cryin' pumpkin in the alley.
+Didn't seem happy but they sure tried to get me,
+Had to back 'em up with the fist, metal crack 'em.
+I'm hearing someone sayin' "You a chicken, don't be scared!"
+It had to be the wind, 'cause nobody wasn't there.
+I searched and I searched as I climbed up the wall,
+And then I started to fly, I went in deeper!
+
+Let it get to me? I'm just gonna creep,
+Down in Pumpkin Hill I gots to find my lost piece.
+I know that it's here, I sense it in my feet,
+The great Emerald's power allows me to feel.
+I can't see a thing but it's around somewhere,
+I gotta hold my head, I have no fear.
+It probably seems crazy, crazy, a graveyard theory,
+A ghost tried to approach me, he got leery.
+
+(This is Knuckles, who fears none.)
+(It's real deal when it comes to my name, kid!)
+
+I ain't gonna let it get to me, I'm just gonna creep,
+Down in Pumpkin Hill I gots to find my lost piece.
+I know that it's here, I can sense it in my feet,
+The great Emerald's power allows me to feel.
+I can't see a thing but it's around somewhere,
+I'm gonna hold my head 'cause I have no fear.
+This probably seems crazy, crazy, a graveyard theory,
+A ghost tried to approach me and got leery.
+
+Asked him a question and he vanished in a second,
+I'm walkin' through valleys cryin' pumpkin in the alley.
+Didn't seem happy but they sure tried to get me,
+Had to back 'em up with the fist, metal crack 'em.
+I'm hearing someone sayin' "You a chicken, don't be scared!"
+It had to be the wind, 'cause nobody wasn't there.
+I searched and I searched as I climbed up the wall,
+And then I started to fly, I went in deeper!
+
+Let it get to me? I'm just gonna creep,
+Down in Pumpkin Hill I gots to find my lost piece.
+I know that it's here, I sense it in my feet,
+The great Emerald's power allows me to feel.
+I can't see a thing but it's around somewhere,
+I gotta hold my head, I have no fear.
+It probably seems crazy, crazy, a graveyard theory,
+A ghost tried to approach me, he got leery.
+
+(Spooky up in here, it's crazy in here,)
+(We still gon' keep it goin', I'm Knuckles.)
+(Nobody scares me,)
+(Whoever want it, bring it!)
+(I don't care, we 'ka do this.)
+(Then come step up to the plate, and meet your match,)
+(It ain't no thang.)
diff --git a/SnowHalation.txt b/SnowHalation.txt
new file mode 100644
index 0000000000000000000000000000000000000000..09add47583fb1f43d001d762e3e5240b05dfd2f9
--- /dev/null
+++ b/SnowHalation.txt
@@ -0,0 +1,36 @@
+Fushigi da ne ima no kimochi
+Sora kara futte kita mitai
+Tokubetsu na kisetsu no iro ga tokimeki o miseru yo
+
+Hajimete deatta toki kara
+Yokan ni sawagu kokoro no Melody
+Tomerarenai tomaranai na・ze
+
+Todokete
+Setsunasa ni wa namae o tsukeyou ka "Snow halation"
+Omoi ga kasanaru made matezu ni
+Kuyashii kedo suki tte junjou
+Binetsu no naka tameratte mo dame da ne
+Tobikomu yuuki ni sansei mamonaku Start!!
+
+Oto mo naku kehai mo naku
+Shizuka ni unmei wa kawaru
+Korekara no mirai ni mune no kodou ga hayaku naru
+
+Tatoeba komatta toki ni wa
+Sugu kaketsukete dakishimetakute
+Doko ni ite mo dokodemo Fly high
+
+Isoide
+Itsu no ma ni ka ookiku nari sugita "True emotion"
+Yume dake miteru you ja tsurai yo
+Koibito wa kimi tte iitai
+Yasashii me ga tomadotteru iya da yo
+Kono mama ikki ni aijou azukete Please!!
+
+Todokete
+Setsunasa ni wa namae o tsukeyou ka "Snow halation"
+Omoi ga kasanaru made matezu ni
+Kuyashii kedo suki tte junjou
+Binetsu no naka tameratte mo dame da ne
+Tobikomu yuuki ni sansei mamonaku Start!! 
diff --git a/Unknown.txt b/Unknown.txt
new file mode 100644
index 0000000000000000000000000000000000000000..bc6fa8e0659ed9ceac67a549318061a700ef5180
--- /dev/null
+++ b/Unknown.txt
@@ -0,0 +1,74 @@
+Here I come, rougher than the rest of them
+The best of them, tougher than leather
+You can call me Knuckles, unlike Sonic I don't chuckle
+I'd rather flex my muscles
+
+I'm hard as nails, it ain't hard to tell
+I break 'em down whether they're solid or frail
+Unlike the rest I'm independent since my first breath
+First test, feel the right, than the worst's left
+
+Born on an island in the heavens
+The blood of my ancestors flows inside me
+My duty is to save the flower
+From evil deterioration
+
+I will be the one to set your heart free, true
+Cleanse yourself of them evil spirits that's in you
+
+Streaking lights, loud sounds, and instincts
+Are the elements that keep me going
+I am fighting my own mission
+Nothing's gonna stand in my way
+
+I will be the one to set your heart free, true
+Cleanse yourself of them evil spirits that's in you
+
+Won't be frightened, I'll stand up to all the pain and turmoil
+Just believe in myself, won't rely on others
+Get this power to wipe out the havoc and anarchy
+This is my planet, gonna fight for my destiny
+
+Here I come, rougher than the rest of them
+The best of them, tougher than leather
+You can call me Knuckles, unlike Sonic I don't chuckle
+I'd rather flex my muscles
+
+I'm hard as nails, it ain't hard to tell
+I break 'em down whether they're solid or frail
+Unlike the rest I'm independent since my first breath
+First test, feel the right, than the worst's left
+
+I have no such things as weak spots
+Don't approve of him but gotta trust him
+This alliance has a purpose
+This partnership is only temporary
+
+I will be the one to set your heart free, true
+Cleanse yourself of evil spirits that got in you
+
+Won't be frightened, I'll stand up to all the pain and turmoil
+Just believe in myself, won't rely on others
+Freedom will be waiting when serenity is restored
+This is my planet, I shall not surrender
+
+Won't be frightened, I'll stand up to all the pain and turmoil
+Just believe in myself, won't rely on others
+Get this power to wipe out the havoc and anarchy
+This is my planet, gonna fight
+
+Won't be frightened, I'll stand up to all the pain and turmoil
+Just believe in myself, won't rely on others
+Freedom will be waiting when serenity is restored
+This is my planet, I shall not surrender
+
+The new porcupine on the block with the buff chest
+In the wilderness with the ruggedness
+Knock, knock, it's Knuckles, the bloat thrower
+Independent flower, Magical Emerald holder
+I'll give you the coldest shoulder
+My spikes go through boulders, that's why I stay a loner
+I was born by myself, I don't need a posse
+I get it on by myself, adversaries get shelved
+
+Right on!
diff --git a/client_1618914098636.log b/client_1618914098636.log
new file mode 100644
index 0000000000000000000000000000000000000000..fa03ce26a85eb55f92fe03dd1cc87bb9d27a7f6b
--- /dev/null
+++ b/client_1618914098636.log
@@ -0,0 +1 @@
+Cannot connect to the Controller on port 8082
diff --git a/client_1618914115362.log b/client_1618914115362.log
new file mode 100644
index 0000000000000000000000000000000000000000..024981098c6ad749f86b33955bc79d5c9f727e44
--- /dev/null
+++ b/client_1618914115362.log
@@ -0,0 +1,19 @@
+Connection established to port 8080
+Message sent to port 8080: LIST
+List operation started
+Message received from port 8080: ERROR
+ERROR: Connection closed by the Controller
+List operation failed
+ERROR: File to store does not exist (absolute path: /home/danimal/Documents/comp2207-distributed-filesystem/Clipboard01.pdf)
+ERROR: File to store does not exist (absolute path: /home/danimal/Documents/comp2207-distributed-filesystem/Clipboard01.pdf)
+ERROR: File to store does not exist (absolute path: /home/danimal/Documents/comp2207-distributed-filesystem/Clipboard01.jpg)
+Message sent to port 8080: LIST
+List operation started
+Message received from port 8080: null
+ERROR: Connection closed by the Controller
+List operation failed
+Message sent to port 8080: LIST
+List operation started
+Message received from port 8080: null
+ERROR: Connection closed by the Controller
+List operation failed
diff --git a/client_1618916214881.log b/client_1618916214881.log
new file mode 100644
index 0000000000000000000000000000000000000000..aa74d26747821f62f1128df42d8fb5d2c38f5993
--- /dev/null
+++ b/client_1618916214881.log
@@ -0,0 +1,19 @@
+Connection established to port 8080
+Message sent to port 8080: LIST
+List operation started
+Message received from port 8080: null
+ERROR: Connection closed by the Controller
+List operation failed
+ERROR: File to store does not exist (absolute path: /home/danimal/Documents/comp2207-distributed-filesystem/Clipboard01.pdf)
+ERROR: File to store does not exist (absolute path: /home/danimal/Documents/comp2207-distributed-filesystem/Clipboard01.pdf)
+ERROR: File to store does not exist (absolute path: /home/danimal/Documents/comp2207-distributed-filesystem/Clipboard01.jpg)
+Message sent to port 8080: LIST
+List operation started
+Message received from port 8080: null
+ERROR: Connection closed by the Controller
+List operation failed
+Message sent to port 8080: LIST
+List operation started
+Message received from port 8080: null
+ERROR: Connection closed by the Controller
+List operation failed
diff --git a/client_1618917382748.log b/client_1618917382748.log
new file mode 100644
index 0000000000000000000000000000000000000000..aa74d26747821f62f1128df42d8fb5d2c38f5993
--- /dev/null
+++ b/client_1618917382748.log
@@ -0,0 +1,19 @@
+Connection established to port 8080
+Message sent to port 8080: LIST
+List operation started
+Message received from port 8080: null
+ERROR: Connection closed by the Controller
+List operation failed
+ERROR: File to store does not exist (absolute path: /home/danimal/Documents/comp2207-distributed-filesystem/Clipboard01.pdf)
+ERROR: File to store does not exist (absolute path: /home/danimal/Documents/comp2207-distributed-filesystem/Clipboard01.pdf)
+ERROR: File to store does not exist (absolute path: /home/danimal/Documents/comp2207-distributed-filesystem/Clipboard01.jpg)
+Message sent to port 8080: LIST
+List operation started
+Message received from port 8080: null
+ERROR: Connection closed by the Controller
+List operation failed
+Message sent to port 8080: LIST
+List operation started
+Message received from port 8080: null
+ERROR: Connection closed by the Controller
+List operation failed
diff --git a/client_1618917653577.log b/client_1618917653577.log
new file mode 100644
index 0000000000000000000000000000000000000000..a2b937eed4def7518ae81dbacc186eefd6ece763
--- /dev/null
+++ b/client_1618917653577.log
@@ -0,0 +1,16 @@
+Connection established to port 8080
+Message sent to port 8080: LIST
+List operation started
+Timeout expired while reading from port 8080
+List operation failed
+ERROR: File to store does not exist (absolute path: /home/danimal/Documents/comp2207-distributed-filesystem/Clipboard01.pdf)
+ERROR: File to store does not exist (absolute path: /home/danimal/Documents/comp2207-distributed-filesystem/Clipboard01.pdf)
+ERROR: File to store does not exist (absolute path: /home/danimal/Documents/comp2207-distributed-filesystem/Clipboard01.jpg)
+Message sent to port 8080: LIST
+List operation started
+Timeout expired while reading from port 8080
+List operation failed
+Message sent to port 8080: LIST
+List operation started
+Timeout expired while reading from port 8080
+List operation failed
diff --git a/client_1618917705050.log b/client_1618917705050.log
new file mode 100644
index 0000000000000000000000000000000000000000..a2b937eed4def7518ae81dbacc186eefd6ece763
--- /dev/null
+++ b/client_1618917705050.log
@@ -0,0 +1,16 @@
+Connection established to port 8080
+Message sent to port 8080: LIST
+List operation started
+Timeout expired while reading from port 8080
+List operation failed
+ERROR: File to store does not exist (absolute path: /home/danimal/Documents/comp2207-distributed-filesystem/Clipboard01.pdf)
+ERROR: File to store does not exist (absolute path: /home/danimal/Documents/comp2207-distributed-filesystem/Clipboard01.pdf)
+ERROR: File to store does not exist (absolute path: /home/danimal/Documents/comp2207-distributed-filesystem/Clipboard01.jpg)
+Message sent to port 8080: LIST
+List operation started
+Timeout expired while reading from port 8080
+List operation failed
+Message sent to port 8080: LIST
+List operation started
+Timeout expired while reading from port 8080
+List operation failed
diff --git a/client_1618918167755.log b/client_1618918167755.log
new file mode 100644
index 0000000000000000000000000000000000000000..a2b937eed4def7518ae81dbacc186eefd6ece763
--- /dev/null
+++ b/client_1618918167755.log
@@ -0,0 +1,16 @@
+Connection established to port 8080
+Message sent to port 8080: LIST
+List operation started
+Timeout expired while reading from port 8080
+List operation failed
+ERROR: File to store does not exist (absolute path: /home/danimal/Documents/comp2207-distributed-filesystem/Clipboard01.pdf)
+ERROR: File to store does not exist (absolute path: /home/danimal/Documents/comp2207-distributed-filesystem/Clipboard01.pdf)
+ERROR: File to store does not exist (absolute path: /home/danimal/Documents/comp2207-distributed-filesystem/Clipboard01.jpg)
+Message sent to port 8080: LIST
+List operation started
+Timeout expired while reading from port 8080
+List operation failed
+Message sent to port 8080: LIST
+List operation started
+Timeout expired while reading from port 8080
+List operation failed
diff --git a/client_1618918283040.log b/client_1618918283040.log
new file mode 100644
index 0000000000000000000000000000000000000000..79889b5c0e24e1efa659dbeb6d979e9c2a4ae5c6
--- /dev/null
+++ b/client_1618918283040.log
@@ -0,0 +1,10 @@
+Connection established to port 8080
+Message sent to port 8080: LIST
+List operation started
+Timeout expired while reading from port 8080
+List operation failed
+ERROR: File to store does not exist (absolute path: /home/danimal/Documents/comp2207-distributed-filesystem/Clipboard01.pdf)
+ERROR: File to store does not exist (absolute path: /home/danimal/Documents/comp2207-distributed-filesystem/Clipboard01.pdf)
+ERROR: File to store does not exist (absolute path: /home/danimal/Documents/comp2207-distributed-filesystem/Clipboard01.jpg)
+Message sent to port 8080: LIST
+List operation started
diff --git a/client_1618918339157.log b/client_1618918339157.log
new file mode 100644
index 0000000000000000000000000000000000000000..79889b5c0e24e1efa659dbeb6d979e9c2a4ae5c6
--- /dev/null
+++ b/client_1618918339157.log
@@ -0,0 +1,10 @@
+Connection established to port 8080
+Message sent to port 8080: LIST
+List operation started
+Timeout expired while reading from port 8080
+List operation failed
+ERROR: File to store does not exist (absolute path: /home/danimal/Documents/comp2207-distributed-filesystem/Clipboard01.pdf)
+ERROR: File to store does not exist (absolute path: /home/danimal/Documents/comp2207-distributed-filesystem/Clipboard01.pdf)
+ERROR: File to store does not exist (absolute path: /home/danimal/Documents/comp2207-distributed-filesystem/Clipboard01.jpg)
+Message sent to port 8080: LIST
+List operation started
diff --git a/client_1618918660778.log b/client_1618918660778.log
new file mode 100644
index 0000000000000000000000000000000000000000..7d494f081d2ef1c1e90a4fe9c82d6d948e81085f
--- /dev/null
+++ b/client_1618918660778.log
@@ -0,0 +1,19 @@
+Connection established to port 8080
+Message sent to port 8080: LIST
+List operation started
+Message received from port 8080: 
+ERROR: Connection closed by the Controller
+List operation failed
+ERROR: File to store does not exist (absolute path: /home/danimal/Documents/comp2207-distributed-filesystem/Clipboard01.pdf)
+ERROR: File to store does not exist (absolute path: /home/danimal/Documents/comp2207-distributed-filesystem/Clipboard01.pdf)
+ERROR: File to store does not exist (absolute path: /home/danimal/Documents/comp2207-distributed-filesystem/Clipboard01.jpg)
+Message sent to port 8080: LIST
+List operation started
+Message received from port 8080: 
+ERROR: Connection closed by the Controller
+List operation failed
+Message sent to port 8080: LIST
+List operation started
+Message received from port 8080: 
+ERROR: Connection closed by the Controller
+List operation failed
diff --git a/client_1618919054780.log b/client_1618919054780.log
new file mode 100644
index 0000000000000000000000000000000000000000..7d494f081d2ef1c1e90a4fe9c82d6d948e81085f
--- /dev/null
+++ b/client_1618919054780.log
@@ -0,0 +1,19 @@
+Connection established to port 8080
+Message sent to port 8080: LIST
+List operation started
+Message received from port 8080: 
+ERROR: Connection closed by the Controller
+List operation failed
+ERROR: File to store does not exist (absolute path: /home/danimal/Documents/comp2207-distributed-filesystem/Clipboard01.pdf)
+ERROR: File to store does not exist (absolute path: /home/danimal/Documents/comp2207-distributed-filesystem/Clipboard01.pdf)
+ERROR: File to store does not exist (absolute path: /home/danimal/Documents/comp2207-distributed-filesystem/Clipboard01.jpg)
+Message sent to port 8080: LIST
+List operation started
+Message received from port 8080: 
+ERROR: Connection closed by the Controller
+List operation failed
+Message sent to port 8080: LIST
+List operation started
+Message received from port 8080: 
+ERROR: Connection closed by the Controller
+List operation failed
diff --git a/client_1618919710976.log b/client_1618919710976.log
new file mode 100644
index 0000000000000000000000000000000000000000..7d494f081d2ef1c1e90a4fe9c82d6d948e81085f
--- /dev/null
+++ b/client_1618919710976.log
@@ -0,0 +1,19 @@
+Connection established to port 8080
+Message sent to port 8080: LIST
+List operation started
+Message received from port 8080: 
+ERROR: Connection closed by the Controller
+List operation failed
+ERROR: File to store does not exist (absolute path: /home/danimal/Documents/comp2207-distributed-filesystem/Clipboard01.pdf)
+ERROR: File to store does not exist (absolute path: /home/danimal/Documents/comp2207-distributed-filesystem/Clipboard01.pdf)
+ERROR: File to store does not exist (absolute path: /home/danimal/Documents/comp2207-distributed-filesystem/Clipboard01.jpg)
+Message sent to port 8080: LIST
+List operation started
+Message received from port 8080: 
+ERROR: Connection closed by the Controller
+List operation failed
+Message sent to port 8080: LIST
+List operation started
+Message received from port 8080: 
+ERROR: Connection closed by the Controller
+List operation failed
diff --git a/client_1618922219091.log b/client_1618922219091.log
new file mode 100644
index 0000000000000000000000000000000000000000..f1079e8657489505eb1cd0d5bed4a1c3fd3e0b05
--- /dev/null
+++ b/client_1618922219091.log
@@ -0,0 +1,16 @@
+Connection established to port 8080
+Message sent to port 8080: LIST
+List operation started
+Message received from port 8080: LIST
+List operation successfully completed
+ERROR: File to store does not exist (absolute path: /home/danimal/Documents/comp2207-distributed-filesystem/Clipboard01.pdf)
+ERROR: File to store does not exist (absolute path: /home/danimal/Documents/comp2207-distributed-filesystem/Clipboard01.pdf)
+ERROR: File to store does not exist (absolute path: /home/danimal/Documents/comp2207-distributed-filesystem/Clipboard01.jpg)
+Message sent to port 8080: LIST
+List operation started
+Message received from port 8080: LIST
+List operation successfully completed
+Message sent to port 8080: LIST
+List operation started
+Message received from port 8080: LIST
+List operation successfully completed
diff --git a/client_1619002254815.log b/client_1619002254815.log
new file mode 100644
index 0000000000000000000000000000000000000000..f1079e8657489505eb1cd0d5bed4a1c3fd3e0b05
--- /dev/null
+++ b/client_1619002254815.log
@@ -0,0 +1,16 @@
+Connection established to port 8080
+Message sent to port 8080: LIST
+List operation started
+Message received from port 8080: LIST
+List operation successfully completed
+ERROR: File to store does not exist (absolute path: /home/danimal/Documents/comp2207-distributed-filesystem/Clipboard01.pdf)
+ERROR: File to store does not exist (absolute path: /home/danimal/Documents/comp2207-distributed-filesystem/Clipboard01.pdf)
+ERROR: File to store does not exist (absolute path: /home/danimal/Documents/comp2207-distributed-filesystem/Clipboard01.jpg)
+Message sent to port 8080: LIST
+List operation started
+Message received from port 8080: LIST
+List operation successfully completed
+Message sent to port 8080: LIST
+List operation started
+Message received from port 8080: LIST
+List operation successfully completed
diff --git a/client_1619002688932.log b/client_1619002688932.log
new file mode 100644
index 0000000000000000000000000000000000000000..c1fe03ff91b9385076603e1f04b4d0265b18795e
--- /dev/null
+++ b/client_1619002688932.log
@@ -0,0 +1,18 @@
+Connection established to port 8080
+Message sent to port 8080: LIST
+List operation started
+Message received from port 8080: LIST
+List operation successfully completed
+ERROR: Filename includes spaces (absolute path: /home/danimal/Documents/comp2207-distributed-filesystem/All Star.txt)
+ERROR: Filename includes spaces (absolute path: /home/danimal/Documents/comp2207-distributed-filesystem/All Star.txt)
+Message sent to port 8080: STORE Unknown.txt 2594
+Store operation started for file Unknown.txt
+Message received from port 8080: STORE_TO
+Controller replied to store Unknown.txt in these Dstores: 
+Timeout expired while reading from port 8080
+Message sent to port 8080: LIST
+List operation started
+Message received from port 8080: LIST Unknown.txt
+List operation successfully completed
+Message sent to port 8080: LOAD Unknown.txt
+Load operation for file Unknown.txt started
diff --git a/client_1619002774548.log b/client_1619002774548.log
new file mode 100644
index 0000000000000000000000000000000000000000..700813d6f59d1c3b741d3a00ec85b647e90d965a
--- /dev/null
+++ b/client_1619002774548.log
@@ -0,0 +1,17 @@
+Connection established to port 8080
+Message sent to port 8080: LIST
+List operation started
+Message received from port 8080: LIST Unknown.txt
+List operation successfully completed
+ERROR: File to store does not exist (absolute path: /home/danimal/Documents/comp2207-distributed-filesystem/All Star.txt)
+ERROR: File to store does not exist (absolute path: /home/danimal/Documents/comp2207-distributed-filesystem/All Star.txt)
+Message sent to port 8080: STORE Unknown.txt 2594
+Store operation started for file Unknown.txt
+Message received from port 8080: ERROR ALREADY_EXISTS Unknown.txt
+ERROR: Unexpected message received: ERROR ALREADY_EXISTS Unknown.txt
+Message sent to port 8080: LIST
+List operation started
+Message received from port 8080: LIST Unknown.txt
+List operation successfully completed
+Message sent to port 8080: LOAD Unknown.txt
+Load operation for file Unknown.txt started
diff --git a/client_1619002831484.log b/client_1619002831484.log
new file mode 100644
index 0000000000000000000000000000000000000000..b5328a03c5e6aa88f6009ee1456f294142554011
--- /dev/null
+++ b/client_1619002831484.log
@@ -0,0 +1,27 @@
+Connection established to port 8080
+Message sent to port 8080: LIST
+List operation started
+Message received from port 8080: LIST Unknown.txt
+List operation successfully completed
+Message sent to port 8080: STORE AllStar.txt 2227
+Store operation started for file AllStar.txt
+Message received from port 8080: STORE_TO
+Controller replied to store AllStar.txt in these Dstores: 
+Timeout expired while reading from port 8080
+Message sent to port 8080: STORE AllStar.txt 2227
+Store operation started for file AllStar.txt
+Message received from port 8080: ERROR ALREADY_EXISTS AllStar.txt
+ERROR: Unexpected message received: ERROR ALREADY_EXISTS AllStar.txt
+Message sent to port 8080: STORE Unknown.txt 2594
+Store operation started for file Unknown.txt
+Message received from port 8080: ERROR ALREADY_EXISTS Unknown.txt
+ERROR: Unexpected message received: ERROR ALREADY_EXISTS Unknown.txt
+Message sent to port 8080: LIST
+List operation started
+Message received from port 8080: LIST AllStar.txt Unknown.txt
+List operation successfully completed
+Message sent to port 8080: LOAD AllStar.txt
+Load operation for file AllStar.txt started
+Timeout expired while reading from port 8080
+Message sent to port 8080: LOAD Unknown.txt
+Load operation for file Unknown.txt started
diff --git a/client_1619015946719.log b/client_1619015946719.log
new file mode 100644
index 0000000000000000000000000000000000000000..b1a12e72369e2ea024eabd45b66cd0f892cc6234
--- /dev/null
+++ b/client_1619015946719.log
@@ -0,0 +1,57 @@
+Connection established to port 8080
+Message sent to port 8080: LIST
+List operation started
+Message received from port 8080: LIST
+List operation successfully completed
+Message sent to port 8080: STORE AllStar.txt 2227
+Store operation started for file AllStar.txt
+Message received from port 8080: STORE_TO 8081
+Controller replied to store AllStar.txt in these Dstores: 8081 
+Connection established to port 8081
+Message sent to port 8081: STORE AllStar.txt 2227
+Storing file AllStar.txt to Dstore 8081
+Message received from port 8081: null
+ERROR: Connection closed by Dstore 8081
+Store of file AllStar.txt to Dstore 8081 failed
+Message received from port 8080: STORE_COMPLETE
+Store operation for file AllStar.txt completed
+Message sent to port 8080: STORE AllStar.txt 2227
+Store operation started for file AllStar.txt
+Message received from port 8080: ERROR ALREADY_EXISTS AllStar.txt
+ERROR: Unexpected message received: ERROR ALREADY_EXISTS AllStar.txt
+Message sent to port 8080: STORE Unknown.txt 2594
+Store operation started for file Unknown.txt
+Message received from port 8080: STORE_TO 8081
+Controller replied to store Unknown.txt in these Dstores: 8081 
+Connection established to port 8081
+Message sent to port 8081: STORE Unknown.txt 2594
+Storing file Unknown.txt to Dstore 8081
+Message received from port 8081: null
+ERROR: Connection closed by Dstore 8081
+Store of file Unknown.txt to Dstore 8081 failed
+Message received from port 8080: STORE_COMPLETE
+Store operation for file Unknown.txt completed
+Message sent to port 8080: LIST
+List operation started
+Message received from port 8080: LIST AllStar.txt Unknown.txt
+List operation successfully completed
+Message sent to port 8080: LOAD AllStar.txt
+Load operation for file AllStar.txt started
+Message received from port 8080: ERROR_LOAD
+Load operation for file AllStar.txt failed after having contacted 0 different Dstores
+Message sent to port 8080: LOAD Unknown.txt
+Load operation for file Unknown.txt started
+Message received from port 8080: ERROR_LOAD
+Load operation for file Unknown.txt failed after having contacted 0 different Dstores
+Message sent to port 8080: REMOVE AllStar.txt
+Remove operation for file AllStar.txt started
+Message received from port 8080: REMOVE_COMPLETE
+Remove operation for file AllStar.txt successfully completed
+Message sent to port 8080: REMOVE Unknown.txt
+Remove operation for file Unknown.txt started
+Message received from port 8080: REMOVE_COMPLETE
+Remove operation for file Unknown.txt successfully completed
+Message sent to port 8080: LIST
+List operation started
+Message received from port 8080: LIST AllStar.txt Unknown.txt
+List operation successfully completed
diff --git a/client_1619016557204.log b/client_1619016557204.log
new file mode 100644
index 0000000000000000000000000000000000000000..91aeef4a87ea5288e92375a964a53be44d8ac0ec
--- /dev/null
+++ b/client_1619016557204.log
@@ -0,0 +1,48 @@
+Connection established to port 8080
+Message sent to port 8080: LIST
+List operation started
+Message received from port 8080: LIST
+List operation successfully completed
+Message sent to port 8080: STORE AllStar.txt 2227
+Store operation started for file AllStar.txt
+Message received from port 8080: STORE_TO 8081
+Controller replied to store AllStar.txt in these Dstores: 8081 
+Connection established to port 8081
+Message sent to port 8081: STORE AllStar.txt 2227
+Storing file AllStar.txt to Dstore 8081
+Message received from port 8081: ACK
+ACK received from Dstore 8081 to store file AllStar.txt
+Store of file AllStar.txt to Dstore 8081 successfully completed
+Message received from port 8080: STORE_COMPLETE
+Store operation for file AllStar.txt completed
+Message sent to port 8080: STORE AllStar.txt 2227
+Store operation started for file AllStar.txt
+Message received from port 8080: ERROR ALREADY_EXISTS AllStar.txt
+ERROR: Unexpected message received: ERROR ALREADY_EXISTS AllStar.txt
+Message sent to port 8080: STORE Unknown.txt 2594
+Store operation started for file Unknown.txt
+Message received from port 8080: STORE_TO 8081
+Controller replied to store Unknown.txt in these Dstores: 8081 
+Connection established to port 8081
+Message sent to port 8081: STORE Unknown.txt 2594
+Storing file Unknown.txt to Dstore 8081
+Message received from port 8081: ACK
+ACK received from Dstore 8081 to store file Unknown.txt
+Store of file Unknown.txt to Dstore 8081 successfully completed
+Message received from port 8080: STORE_COMPLETE
+Store operation for file Unknown.txt completed
+Message sent to port 8080: LIST
+List operation started
+Message received from port 8080: LIST AllStar.txt Unknown.txt
+List operation successfully completed
+Message sent to port 8080: LOAD AllStar.txt
+Load operation for file AllStar.txt started
+Message received from port 8080: ERROR_LOAD
+Load operation for file AllStar.txt failed after having contacted 0 different Dstores
+Message sent to port 8080: LOAD Unknown.txt
+Load operation for file Unknown.txt started
+Message received from port 8080: LOAD_FROM 8081 -1
+Controller replied to load file Unknown.txt (size: -1 bytes) from Dstore 8081
+Connection established to port 8081
+Message sent to port 8081: LOAD_DATA Unknown.txt
+Loading file Unknown.txt from Dstore 8081
diff --git a/client_1619016975115.log b/client_1619016975115.log
new file mode 100644
index 0000000000000000000000000000000000000000..5c0107fb9da441797da9490d15d27e386e32031e
--- /dev/null
+++ b/client_1619016975115.log
@@ -0,0 +1,32 @@
+Connection established to port 8080
+Message sent to port 8080: LIST
+List operation started
+Message received from port 8080: LIST AllStar.txt Unknown.txt
+List operation successfully completed
+Message sent to port 8080: STORE AllStar.txt 2227
+Store operation started for file AllStar.txt
+Message received from port 8080: ERROR ALREADY_EXISTS AllStar.txt
+ERROR: Unexpected message received: ERROR ALREADY_EXISTS AllStar.txt
+Message sent to port 8080: STORE AllStar.txt 2227
+Store operation started for file AllStar.txt
+Message received from port 8080: ERROR ALREADY_EXISTS AllStar.txt
+ERROR: Unexpected message received: ERROR ALREADY_EXISTS AllStar.txt
+Message sent to port 8080: STORE Unknown.txt 2594
+Store operation started for file Unknown.txt
+Message received from port 8080: ERROR ALREADY_EXISTS Unknown.txt
+ERROR: Unexpected message received: ERROR ALREADY_EXISTS Unknown.txt
+Message sent to port 8080: LIST
+List operation started
+Message received from port 8080: LIST AllStar.txt Unknown.txt
+List operation successfully completed
+Message sent to port 8080: LOAD AllStar.txt
+Load operation for file AllStar.txt started
+Message received from port 8080: ERROR_LOAD
+Load operation for file AllStar.txt failed after having contacted 0 different Dstores
+Message sent to port 8080: LOAD Unknown.txt
+Load operation for file Unknown.txt started
+Message received from port 8080: LOAD_FROM 8081 -1
+Controller replied to load file Unknown.txt (size: -1 bytes) from Dstore 8081
+Connection established to port 8081
+Message sent to port 8081: LOAD_DATA Unknown.txt
+Loading file Unknown.txt from Dstore 8081
diff --git a/client_1619017037535.log b/client_1619017037535.log
new file mode 100644
index 0000000000000000000000000000000000000000..8fa327e4388050f3ebffe1714c1270fb1f16944d
--- /dev/null
+++ b/client_1619017037535.log
@@ -0,0 +1,48 @@
+Connection established to port 8080
+Message sent to port 8080: LIST
+List operation started
+Message received from port 8080: LIST
+List operation successfully completed
+Message sent to port 8080: STORE AllStar.txt 2227
+Store operation started for file AllStar.txt
+Message received from port 8080: STORE_TO 8081
+Controller replied to store AllStar.txt in these Dstores: 8081 
+Connection established to port 8081
+Message sent to port 8081: STORE AllStar.txt 2227
+Storing file AllStar.txt to Dstore 8081
+Message received from port 8081: ACK
+ACK received from Dstore 8081 to store file AllStar.txt
+Store of file AllStar.txt to Dstore 8081 successfully completed
+Message received from port 8080: STORE_COMPLETE
+Store operation for file AllStar.txt completed
+Message sent to port 8080: STORE AllStar.txt 2227
+Store operation started for file AllStar.txt
+Message received from port 8080: ERROR FILE_ALREADY_EXISTS AllStar.txt
+ERROR: Unexpected message received: ERROR FILE_ALREADY_EXISTS AllStar.txt
+Message sent to port 8080: STORE Unknown.txt 2594
+Store operation started for file Unknown.txt
+Message received from port 8080: STORE_TO 8081
+Controller replied to store Unknown.txt in these Dstores: 8081 
+Connection established to port 8081
+Message sent to port 8081: STORE Unknown.txt 2594
+Storing file Unknown.txt to Dstore 8081
+Message received from port 8081: ACK
+ACK received from Dstore 8081 to store file Unknown.txt
+Store of file Unknown.txt to Dstore 8081 successfully completed
+Message received from port 8080: STORE_COMPLETE
+Store operation for file Unknown.txt completed
+Message sent to port 8080: LIST
+List operation started
+Message received from port 8080: LIST AllStar.txt Unknown.txt
+List operation successfully completed
+Message sent to port 8080: LOAD AllStar.txt
+Load operation for file AllStar.txt started
+Message received from port 8080: ERROR_LOAD
+Load operation for file AllStar.txt failed after having contacted 0 different Dstores
+Message sent to port 8080: LOAD Unknown.txt
+Load operation for file Unknown.txt started
+Message received from port 8080: LOAD_FROM 8081 -1
+Controller replied to load file Unknown.txt (size: -1 bytes) from Dstore 8081
+Connection established to port 8081
+Message sent to port 8081: LOAD_DATA Unknown.txt
+Loading file Unknown.txt from Dstore 8081
diff --git a/client_1619017290151.log b/client_1619017290151.log
new file mode 100644
index 0000000000000000000000000000000000000000..9d7f7afced567853dae346e0c94e91e9d7e85114
--- /dev/null
+++ b/client_1619017290151.log
@@ -0,0 +1,57 @@
+Connection established to port 8080
+Message sent to port 8080: LIST
+List operation started
+Message received from port 8080: LIST
+List operation successfully completed
+Message sent to port 8080: STORE AllStar.txt 2227
+Store operation started for file AllStar.txt
+Message received from port 8080: STORE_TO 8081
+Controller replied to store AllStar.txt in these Dstores: 8081 
+Connection established to port 8081
+Message sent to port 8081: STORE AllStar.txt 2227
+Storing file AllStar.txt to Dstore 8081
+Message received from port 8081: ACK
+ACK received from Dstore 8081 to store file AllStar.txt
+Store of file AllStar.txt to Dstore 8081 successfully completed
+Message received from port 8080: STORE_COMPLETE
+Store operation for file AllStar.txt completed
+Message sent to port 8080: STORE AllStar.txt 2227
+Store operation started for file AllStar.txt
+Message received from port 8080: ERROR_FILE_ALREADY_EXISTS AllStar.txt
+File to store AllStar.txt already exists in the data store
+Message sent to port 8080: STORE Unknown.txt 2594
+Store operation started for file Unknown.txt
+Message received from port 8080: STORE_TO 8081
+Controller replied to store Unknown.txt in these Dstores: 8081 
+Connection established to port 8081
+Message sent to port 8081: STORE Unknown.txt 2594
+Storing file Unknown.txt to Dstore 8081
+Message received from port 8081: ACK
+ACK received from Dstore 8081 to store file Unknown.txt
+Store of file Unknown.txt to Dstore 8081 successfully completed
+Message received from port 8080: STORE_COMPLETE
+Store operation for file Unknown.txt completed
+Message sent to port 8080: LIST
+List operation started
+Message received from port 8080: LIST AllStar.txt Unknown.txt
+List operation successfully completed
+Message sent to port 8080: LOAD AllStar.txt
+Load operation for file AllStar.txt started
+Message received from port 8080: ERROR_LOAD
+Load operation for file AllStar.txt failed after having contacted 0 different Dstores
+Message sent to port 8080: LOAD Unknown.txt
+Load operation for file Unknown.txt started
+Message received from port 8080: ERROR_LOAD
+Load operation for file Unknown.txt failed after having contacted 0 different Dstores
+Message sent to port 8080: REMOVE AllStar.txt
+Remove operation for file AllStar.txt started
+Message received from port 8080: REMOVE_COMPLETE
+Remove operation for file AllStar.txt successfully completed
+Message sent to port 8080: REMOVE Unknown.txt
+Remove operation for file Unknown.txt started
+Message received from port 8080: REMOVE_COMPLETE
+Remove operation for file Unknown.txt successfully completed
+Message sent to port 8080: LIST
+List operation started
+Message received from port 8080: LIST AllStar.txt Unknown.txt
+List operation successfully completed
diff --git a/client_1619017624104.log b/client_1619017624104.log
new file mode 100644
index 0000000000000000000000000000000000000000..6e52af7ed29a45c646c98096b03b26b16f274441
--- /dev/null
+++ b/client_1619017624104.log
@@ -0,0 +1,48 @@
+Connection established to port 8080
+Message sent to port 8080: LIST
+List operation started
+Message received from port 8080: LIST
+List operation successfully completed
+Message sent to port 8080: STORE AllStar.txt 2227
+Store operation started for file AllStar.txt
+Message received from port 8080: STORE_TO 8081
+Controller replied to store AllStar.txt in these Dstores: 8081 
+Connection established to port 8081
+Message sent to port 8081: STORE AllStar.txt 2227
+Storing file AllStar.txt to Dstore 8081
+Message received from port 8081: ACK
+ACK received from Dstore 8081 to store file AllStar.txt
+Store of file AllStar.txt to Dstore 8081 successfully completed
+Message received from port 8080: STORE_COMPLETE
+Store operation for file AllStar.txt completed
+Message sent to port 8080: STORE AllStar.txt 2227
+Store operation started for file AllStar.txt
+Message received from port 8080: ERROR_FILE_ALREADY_EXISTS AllStar.txt
+File to store AllStar.txt already exists in the data store
+Message sent to port 8080: STORE Unknown.txt 2594
+Store operation started for file Unknown.txt
+Message received from port 8080: STORE_TO 8081
+Controller replied to store Unknown.txt in these Dstores: 8081 
+Connection established to port 8081
+Message sent to port 8081: STORE Unknown.txt 2594
+Storing file Unknown.txt to Dstore 8081
+Message received from port 8081: ACK
+ACK received from Dstore 8081 to store file Unknown.txt
+Store of file Unknown.txt to Dstore 8081 successfully completed
+Message received from port 8080: STORE_COMPLETE
+Store operation for file Unknown.txt completed
+Message sent to port 8080: LIST
+List operation started
+Message received from port 8080: LIST AllStar.txt Unknown.txt
+List operation successfully completed
+Message sent to port 8080: LOAD AllStar.txt
+Load operation for file AllStar.txt started
+Message received from port 8080: ERROR_LOAD
+Load operation for file AllStar.txt failed after having contacted 0 different Dstores
+Message sent to port 8080: LOAD Unknown.txt
+Load operation for file Unknown.txt started
+Message received from port 8080: LOAD_FROM 8081 -1
+Controller replied to load file Unknown.txt (size: -1 bytes) from Dstore 8081
+Connection established to port 8081
+Message sent to port 8081: LOAD_DATA Unknown.txt
+Loading file Unknown.txt from Dstore 8081
diff --git a/client_1619018158905.log b/client_1619018158905.log
new file mode 100644
index 0000000000000000000000000000000000000000..5d9f5edff1b411c0142dc43b0225d48b72312149
--- /dev/null
+++ b/client_1619018158905.log
@@ -0,0 +1,61 @@
+Connection established to port 8080
+Message sent to port 8080: LIST
+List operation started
+Message received from port 8080: LIST
+List operation successfully completed
+Message sent to port 8080: STORE AllStar.txt 2227
+Store operation started for file AllStar.txt
+Message received from port 8080: STORE_TO 8081
+Controller replied to store AllStar.txt in these Dstores: 8081 
+Connection established to port 8081
+Message sent to port 8081: STORE AllStar.txt 2227
+Storing file AllStar.txt to Dstore 8081
+Message received from port 8081: ACK
+ACK received from Dstore 8081 to store file AllStar.txt
+Store of file AllStar.txt to Dstore 8081 successfully completed
+Message received from port 8080: STORE_COMPLETE
+Store operation for file AllStar.txt completed
+Message sent to port 8080: STORE AllStar.txt 2227
+Store operation started for file AllStar.txt
+Message received from port 8080: ERROR_FILE_ALREADY_EXISTS AllStar.txt
+File to store AllStar.txt already exists in the data store
+Message sent to port 8080: STORE Unknown.txt 2594
+Store operation started for file Unknown.txt
+Message received from port 8080: STORE_TO 8081
+Controller replied to store Unknown.txt in these Dstores: 8081 
+Connection established to port 8081
+Message sent to port 8081: STORE Unknown.txt 2594
+Storing file Unknown.txt to Dstore 8081
+Message received from port 8081: ACK
+ACK received from Dstore 8081 to store file Unknown.txt
+Store of file Unknown.txt to Dstore 8081 successfully completed
+Message received from port 8080: STORE_COMPLETE
+Store operation for file Unknown.txt completed
+Message sent to port 8080: LIST
+List operation started
+Message received from port 8080: LIST AllStar.txt Unknown.txt
+List operation successfully completed
+Message sent to port 8080: LOAD AllStar.txt
+Load operation for file AllStar.txt started
+Message received from port 8080: ERROR_LOAD
+Load operation for file AllStar.txt failed after having contacted 0 different Dstores
+Message sent to port 8080: LOAD Unknown.txt
+Load operation for file Unknown.txt started
+Message received from port 8080: LOAD_FROM 8081 2594
+Controller replied to load file Unknown.txt (size: 2594 bytes) from Dstore 8081
+Connection established to port 8081
+Message sent to port 8081: LOAD_DATA Unknown.txt
+Loading file Unknown.txt from Dstore 8081
+Load operation of file Unknown.txt from Dstore 8081 successfully completed
+Message sent to port 8080: REMOVE AllStar.txt
+Remove operation for file AllStar.txt started
+Message received from port 8080: REMOVE_COMPLETE
+Remove operation for file AllStar.txt successfully completed
+Message sent to port 8080: REMOVE Unknown.txt
+Remove operation for file Unknown.txt started
+Message received from port 8080: REMOVE_COMPLETE
+Remove operation for file Unknown.txt successfully completed
+Message sent to port 8080: LIST
+List operation started
+Message received from port 8080: LIST AllStar.txt Unknown.txt
+List operation successfully completed
diff --git a/client_1619018768533.log b/client_1619018768533.log
new file mode 100644
index 0000000000000000000000000000000000000000..772c59597242e3bf105ce61f59e7a45e48b5c021
--- /dev/null
+++ b/client_1619018768533.log
@@ -0,0 +1,62 @@
+Connection established to port 8080
+Message sent to port 8080: LIST
+List operation started
+Message received from port 8080: LIST
+List operation successfully completed
+Message sent to port 8080: STORE AllStar.txt 2227
+Store operation started for file AllStar.txt
+Message received from port 8080: STORE_TO 8081
+Controller replied to store AllStar.txt in these Dstores: 8081 
+Connection established to port 8081
+Message sent to port 8081: STORE AllStar.txt 2227
+Storing file AllStar.txt to Dstore 8081
+Message received from port 8081: ACK
+ACK received from Dstore 8081 to store file AllStar.txt
+Store of file AllStar.txt to Dstore 8081 successfully completed
+Message received from port 8080: STORE_COMPLETE
+Store operation for file AllStar.txt completed
+Message sent to port 8080: STORE AllStar.txt 2227
+Store operation started for file AllStar.txt
+Message received from port 8080: ERROR_FILE_ALREADY_EXISTS AllStar.txt
+File to store AllStar.txt already exists in the data store
+Message sent to port 8080: STORE Unknown.txt 2594
+Store operation started for file Unknown.txt
+Message received from port 8080: STORE_TO 8081
+Controller replied to store Unknown.txt in these Dstores: 8081 
+Connection established to port 8081
+Message sent to port 8081: STORE Unknown.txt 2594
+Storing file Unknown.txt to Dstore 8081
+Message received from port 8081: ACK
+ACK received from Dstore 8081 to store file Unknown.txt
+Store of file Unknown.txt to Dstore 8081 successfully completed
+Message received from port 8080: STORE_COMPLETE
+Store operation for file Unknown.txt completed
+Message sent to port 8080: LIST
+List operation started
+Message received from port 8080: LIST AllStar.txt Unknown.txt
+List operation successfully completed
+Message sent to port 8080: LOAD AllStar.txt
+Load operation for file AllStar.txt started
+Message received from port 8080: ERROR_LOAD
+Load operation for file AllStar.txt failed after having contacted 0 different Dstores
+Message sent to port 8080: LOAD Unknown.txt
+Load operation for file Unknown.txt started
+Message received from port 8080: LOAD_FROM 8081 2594
+Controller replied to load file Unknown.txt (size: 2594 bytes) from Dstore 8081
+Connection established to port 8081
+Message sent to port 8081: LOAD_DATA Unknown.txt
+Loading file Unknown.txt from Dstore 8081
+Load operation of file Unknown.txt from Dstore 8081 successfully completed
+Message sent to port 8080: REMOVE AllStar.txt
+Remove operation for file AllStar.txt started
+Message received from port 8080: REMOVE_COMPLETE
+Remove operation for file AllStar.txt successfully completed
+Message sent to port 8080: REMOVE Unknown.txt
+Remove operation for file Unknown.txt started
+Timeout expired while reading from port 8080
+Remove operation for file Unknown.txt not completed successfully
+Message sent to port 8080: LIST
+List operation started
+Message received from port 8080: REMOVE_COMPLETE
+ERROR: Connection closed by the Controller
+List operation failed
diff --git a/client_1619019036315.log b/client_1619019036315.log
new file mode 100644
index 0000000000000000000000000000000000000000..32523cd870d7e90323266ed22e830549dc1c652d
--- /dev/null
+++ b/client_1619019036315.log
@@ -0,0 +1,65 @@
+Connection established to port 8080
+Message sent to port 8080: LIST
+List operation started
+Message received from port 8080: LIST
+List operation successfully completed
+Message sent to port 8080: STORE AllStar.txt 2227
+Store operation started for file AllStar.txt
+Message received from port 8080: STORE_TO 8081
+Controller replied to store AllStar.txt in these Dstores: 8081 
+Connection established to port 8081
+Message sent to port 8081: STORE AllStar.txt 2227
+Storing file AllStar.txt to Dstore 8081
+Message received from port 8081: ACK
+ACK received from Dstore 8081 to store file AllStar.txt
+Store of file AllStar.txt to Dstore 8081 successfully completed
+Message received from port 8080: STORE_COMPLETE
+Store operation for file AllStar.txt completed
+Message sent to port 8080: STORE AllStar.txt 2227
+Store operation started for file AllStar.txt
+Message received from port 8080: ERROR_FILE_ALREADY_EXISTS AllStar.txt
+File to store AllStar.txt already exists in the data store
+Message sent to port 8080: STORE Unknown.txt 2594
+Store operation started for file Unknown.txt
+Message received from port 8080: STORE_TO 8081
+Controller replied to store Unknown.txt in these Dstores: 8081 
+Connection established to port 8081
+Message sent to port 8081: STORE Unknown.txt 2594
+Storing file Unknown.txt to Dstore 8081
+Message received from port 8081: ACK
+ACK received from Dstore 8081 to store file Unknown.txt
+Store of file Unknown.txt to Dstore 8081 successfully completed
+Message received from port 8080: STORE_COMPLETE
+Store operation for file Unknown.txt completed
+Message sent to port 8080: LIST
+List operation started
+Message received from port 8080: LIST AllStar.txt Unknown.txt
+List operation successfully completed
+Message sent to port 8080: LOAD AllStar.txt
+Load operation for file AllStar.txt started
+Message received from port 8080: LOAD_FROM 8081 2227
+Controller replied to load file AllStar.txt (size: 2227 bytes) from Dstore 8081
+Connection established to port 8081
+Message sent to port 8081: LOAD_DATA AllStar.txt
+Loading file AllStar.txt from Dstore 8081
+Load operation of file AllStar.txt from Dstore 8081 successfully completed
+Message sent to port 8080: LOAD Unknown.txt
+Load operation for file Unknown.txt started
+Message received from port 8080: LOAD_FROM 8081 2594
+Controller replied to load file Unknown.txt (size: 2594 bytes) from Dstore 8081
+Connection established to port 8081
+Message sent to port 8081: LOAD_DATA Unknown.txt
+Loading file Unknown.txt from Dstore 8081
+Load operation of file Unknown.txt from Dstore 8081 successfully completed
+Message sent to port 8080: REMOVE AllStar.txt
+Remove operation for file AllStar.txt started
+Message received from port 8080: REMOVE_COMPLETE
+Remove operation for file AllStar.txt successfully completed
+Message sent to port 8080: REMOVE Unknown.txt
+Remove operation for file Unknown.txt started
+Message received from port 8080: REMOVE_COMPLETE
+Remove operation for file Unknown.txt successfully completed
+Message sent to port 8080: LIST
+List operation started
+Message received from port 8080: LIST
+List operation successfully completed
diff --git a/client_1619019325145.log b/client_1619019325145.log
new file mode 100644
index 0000000000000000000000000000000000000000..32523cd870d7e90323266ed22e830549dc1c652d
--- /dev/null
+++ b/client_1619019325145.log
@@ -0,0 +1,65 @@
+Connection established to port 8080
+Message sent to port 8080: LIST
+List operation started
+Message received from port 8080: LIST
+List operation successfully completed
+Message sent to port 8080: STORE AllStar.txt 2227
+Store operation started for file AllStar.txt
+Message received from port 8080: STORE_TO 8081
+Controller replied to store AllStar.txt in these Dstores: 8081 
+Connection established to port 8081
+Message sent to port 8081: STORE AllStar.txt 2227
+Storing file AllStar.txt to Dstore 8081
+Message received from port 8081: ACK
+ACK received from Dstore 8081 to store file AllStar.txt
+Store of file AllStar.txt to Dstore 8081 successfully completed
+Message received from port 8080: STORE_COMPLETE
+Store operation for file AllStar.txt completed
+Message sent to port 8080: STORE AllStar.txt 2227
+Store operation started for file AllStar.txt
+Message received from port 8080: ERROR_FILE_ALREADY_EXISTS AllStar.txt
+File to store AllStar.txt already exists in the data store
+Message sent to port 8080: STORE Unknown.txt 2594
+Store operation started for file Unknown.txt
+Message received from port 8080: STORE_TO 8081
+Controller replied to store Unknown.txt in these Dstores: 8081 
+Connection established to port 8081
+Message sent to port 8081: STORE Unknown.txt 2594
+Storing file Unknown.txt to Dstore 8081
+Message received from port 8081: ACK
+ACK received from Dstore 8081 to store file Unknown.txt
+Store of file Unknown.txt to Dstore 8081 successfully completed
+Message received from port 8080: STORE_COMPLETE
+Store operation for file Unknown.txt completed
+Message sent to port 8080: LIST
+List operation started
+Message received from port 8080: LIST AllStar.txt Unknown.txt
+List operation successfully completed
+Message sent to port 8080: LOAD AllStar.txt
+Load operation for file AllStar.txt started
+Message received from port 8080: LOAD_FROM 8081 2227
+Controller replied to load file AllStar.txt (size: 2227 bytes) from Dstore 8081
+Connection established to port 8081
+Message sent to port 8081: LOAD_DATA AllStar.txt
+Loading file AllStar.txt from Dstore 8081
+Load operation of file AllStar.txt from Dstore 8081 successfully completed
+Message sent to port 8080: LOAD Unknown.txt
+Load operation for file Unknown.txt started
+Message received from port 8080: LOAD_FROM 8081 2594
+Controller replied to load file Unknown.txt (size: 2594 bytes) from Dstore 8081
+Connection established to port 8081
+Message sent to port 8081: LOAD_DATA Unknown.txt
+Loading file Unknown.txt from Dstore 8081
+Load operation of file Unknown.txt from Dstore 8081 successfully completed
+Message sent to port 8080: REMOVE AllStar.txt
+Remove operation for file AllStar.txt started
+Message received from port 8080: REMOVE_COMPLETE
+Remove operation for file AllStar.txt successfully completed
+Message sent to port 8080: REMOVE Unknown.txt
+Remove operation for file Unknown.txt started
+Message received from port 8080: REMOVE_COMPLETE
+Remove operation for file Unknown.txt successfully completed
+Message sent to port 8080: LIST
+List operation started
+Message received from port 8080: LIST
+List operation successfully completed
diff --git a/client_1619019601175.log b/client_1619019601175.log
new file mode 100644
index 0000000000000000000000000000000000000000..093864083f8b5fec6c9dee3979172296c7c49460
--- /dev/null
+++ b/client_1619019601175.log
@@ -0,0 +1,61 @@
+Connection established to port 8080
+Message sent to port 8080: LIST
+List operation started
+Message received from port 8080: LIST
+List operation successfully completed
+Message sent to port 8080: STORE AllStar.txt 2227
+Store operation started for file AllStar.txt
+Message received from port 8080: STORE_TO 8081
+Controller replied to store AllStar.txt in these Dstores: 8081 
+Connection established to port 8081
+Message sent to port 8081: STORE AllStar.txt 2227
+Storing file AllStar.txt to Dstore 8081
+Message received from port 8081: ACK
+ACK received from Dstore 8081 to store file AllStar.txt
+Store of file AllStar.txt to Dstore 8081 successfully completed
+Message received from port 8080: STORE_COMPLETE
+Store operation for file AllStar.txt completed
+Message sent to port 8080: STORE AllStar.txt 2227
+Store operation started for file AllStar.txt
+Message received from port 8080: ERROR_FILE_ALREADY_EXISTS AllStar.txt
+File to store AllStar.txt already exists in the data store
+Message sent to port 8080: STORE Unknown.txt 2594
+Store operation started for file Unknown.txt
+Message received from port 8080: STORE_TO 8081
+Controller replied to store Unknown.txt in these Dstores: 8081 
+Connection established to port 8081
+Message sent to port 8081: STORE Unknown.txt 2594
+Storing file Unknown.txt to Dstore 8081
+Message received from port 8081: ACK
+ACK received from Dstore 8081 to store file Unknown.txt
+Store of file Unknown.txt to Dstore 8081 successfully completed
+Message received from port 8080: STORE_COMPLETE
+Store operation for file Unknown.txt completed
+Message sent to port 8080: LIST
+List operation started
+Message received from port 8080: LIST AllStar.txt Unknown.txt
+List operation successfully completed
+Message sent to port 8080: LOAD AllStar.txt
+Load operation for file AllStar.txt started
+Message received from port 8080: ERROR_LOAD
+Load operation for file AllStar.txt failed after having contacted 0 different Dstores
+Message sent to port 8080: LOAD Unknown.txt
+Load operation for file Unknown.txt started
+Message received from port 8080: LOAD_FROM 8081 2594
+Controller replied to load file Unknown.txt (size: 2594 bytes) from Dstore 8081
+Connection established to port 8081
+Message sent to port 8081: LOAD_DATA Unknown.txt
+Loading file Unknown.txt from Dstore 8081
+Load operation of file Unknown.txt from Dstore 8081 successfully completed
+Message sent to port 8080: REMOVE AllStar.txt
+Remove operation for file AllStar.txt started
+Message received from port 8080: REMOVE_COMPLETE
+Remove operation for file AllStar.txt successfully completed
+Message sent to port 8080: REMOVE Unknown.txt
+Remove operation for file Unknown.txt started
+Message received from port 8080: REMOVE_COMPLETE
+Remove operation for file Unknown.txt successfully completed
+Message sent to port 8080: LIST
+List operation started
+Message received from port 8080: LIST
+List operation successfully completed
diff --git a/client_1619019802665.log b/client_1619019802665.log
new file mode 100644
index 0000000000000000000000000000000000000000..32523cd870d7e90323266ed22e830549dc1c652d
--- /dev/null
+++ b/client_1619019802665.log
@@ -0,0 +1,65 @@
+Connection established to port 8080
+Message sent to port 8080: LIST
+List operation started
+Message received from port 8080: LIST
+List operation successfully completed
+Message sent to port 8080: STORE AllStar.txt 2227
+Store operation started for file AllStar.txt
+Message received from port 8080: STORE_TO 8081
+Controller replied to store AllStar.txt in these Dstores: 8081 
+Connection established to port 8081
+Message sent to port 8081: STORE AllStar.txt 2227
+Storing file AllStar.txt to Dstore 8081
+Message received from port 8081: ACK
+ACK received from Dstore 8081 to store file AllStar.txt
+Store of file AllStar.txt to Dstore 8081 successfully completed
+Message received from port 8080: STORE_COMPLETE
+Store operation for file AllStar.txt completed
+Message sent to port 8080: STORE AllStar.txt 2227
+Store operation started for file AllStar.txt
+Message received from port 8080: ERROR_FILE_ALREADY_EXISTS AllStar.txt
+File to store AllStar.txt already exists in the data store
+Message sent to port 8080: STORE Unknown.txt 2594
+Store operation started for file Unknown.txt
+Message received from port 8080: STORE_TO 8081
+Controller replied to store Unknown.txt in these Dstores: 8081 
+Connection established to port 8081
+Message sent to port 8081: STORE Unknown.txt 2594
+Storing file Unknown.txt to Dstore 8081
+Message received from port 8081: ACK
+ACK received from Dstore 8081 to store file Unknown.txt
+Store of file Unknown.txt to Dstore 8081 successfully completed
+Message received from port 8080: STORE_COMPLETE
+Store operation for file Unknown.txt completed
+Message sent to port 8080: LIST
+List operation started
+Message received from port 8080: LIST AllStar.txt Unknown.txt
+List operation successfully completed
+Message sent to port 8080: LOAD AllStar.txt
+Load operation for file AllStar.txt started
+Message received from port 8080: LOAD_FROM 8081 2227
+Controller replied to load file AllStar.txt (size: 2227 bytes) from Dstore 8081
+Connection established to port 8081
+Message sent to port 8081: LOAD_DATA AllStar.txt
+Loading file AllStar.txt from Dstore 8081
+Load operation of file AllStar.txt from Dstore 8081 successfully completed
+Message sent to port 8080: LOAD Unknown.txt
+Load operation for file Unknown.txt started
+Message received from port 8080: LOAD_FROM 8081 2594
+Controller replied to load file Unknown.txt (size: 2594 bytes) from Dstore 8081
+Connection established to port 8081
+Message sent to port 8081: LOAD_DATA Unknown.txt
+Loading file Unknown.txt from Dstore 8081
+Load operation of file Unknown.txt from Dstore 8081 successfully completed
+Message sent to port 8080: REMOVE AllStar.txt
+Remove operation for file AllStar.txt started
+Message received from port 8080: REMOVE_COMPLETE
+Remove operation for file AllStar.txt successfully completed
+Message sent to port 8080: REMOVE Unknown.txt
+Remove operation for file Unknown.txt started
+Message received from port 8080: REMOVE_COMPLETE
+Remove operation for file Unknown.txt successfully completed
+Message sent to port 8080: LIST
+List operation started
+Message received from port 8080: LIST
+List operation successfully completed
diff --git a/client_1619025053448.log b/client_1619025053448.log
new file mode 100644
index 0000000000000000000000000000000000000000..772c59597242e3bf105ce61f59e7a45e48b5c021
--- /dev/null
+++ b/client_1619025053448.log
@@ -0,0 +1,62 @@
+Connection established to port 8080
+Message sent to port 8080: LIST
+List operation started
+Message received from port 8080: LIST
+List operation successfully completed
+Message sent to port 8080: STORE AllStar.txt 2227
+Store operation started for file AllStar.txt
+Message received from port 8080: STORE_TO 8081
+Controller replied to store AllStar.txt in these Dstores: 8081 
+Connection established to port 8081
+Message sent to port 8081: STORE AllStar.txt 2227
+Storing file AllStar.txt to Dstore 8081
+Message received from port 8081: ACK
+ACK received from Dstore 8081 to store file AllStar.txt
+Store of file AllStar.txt to Dstore 8081 successfully completed
+Message received from port 8080: STORE_COMPLETE
+Store operation for file AllStar.txt completed
+Message sent to port 8080: STORE AllStar.txt 2227
+Store operation started for file AllStar.txt
+Message received from port 8080: ERROR_FILE_ALREADY_EXISTS AllStar.txt
+File to store AllStar.txt already exists in the data store
+Message sent to port 8080: STORE Unknown.txt 2594
+Store operation started for file Unknown.txt
+Message received from port 8080: STORE_TO 8081
+Controller replied to store Unknown.txt in these Dstores: 8081 
+Connection established to port 8081
+Message sent to port 8081: STORE Unknown.txt 2594
+Storing file Unknown.txt to Dstore 8081
+Message received from port 8081: ACK
+ACK received from Dstore 8081 to store file Unknown.txt
+Store of file Unknown.txt to Dstore 8081 successfully completed
+Message received from port 8080: STORE_COMPLETE
+Store operation for file Unknown.txt completed
+Message sent to port 8080: LIST
+List operation started
+Message received from port 8080: LIST AllStar.txt Unknown.txt
+List operation successfully completed
+Message sent to port 8080: LOAD AllStar.txt
+Load operation for file AllStar.txt started
+Message received from port 8080: ERROR_LOAD
+Load operation for file AllStar.txt failed after having contacted 0 different Dstores
+Message sent to port 8080: LOAD Unknown.txt
+Load operation for file Unknown.txt started
+Message received from port 8080: LOAD_FROM 8081 2594
+Controller replied to load file Unknown.txt (size: 2594 bytes) from Dstore 8081
+Connection established to port 8081
+Message sent to port 8081: LOAD_DATA Unknown.txt
+Loading file Unknown.txt from Dstore 8081
+Load operation of file Unknown.txt from Dstore 8081 successfully completed
+Message sent to port 8080: REMOVE AllStar.txt
+Remove operation for file AllStar.txt started
+Message received from port 8080: REMOVE_COMPLETE
+Remove operation for file AllStar.txt successfully completed
+Message sent to port 8080: REMOVE Unknown.txt
+Remove operation for file Unknown.txt started
+Timeout expired while reading from port 8080
+Remove operation for file Unknown.txt not completed successfully
+Message sent to port 8080: LIST
+List operation started
+Message received from port 8080: REMOVE_COMPLETE
+ERROR: Connection closed by the Controller
+List operation failed
diff --git a/client_1619025357100.log b/client_1619025357100.log
new file mode 100644
index 0000000000000000000000000000000000000000..32523cd870d7e90323266ed22e830549dc1c652d
--- /dev/null
+++ b/client_1619025357100.log
@@ -0,0 +1,65 @@
+Connection established to port 8080
+Message sent to port 8080: LIST
+List operation started
+Message received from port 8080: LIST
+List operation successfully completed
+Message sent to port 8080: STORE AllStar.txt 2227
+Store operation started for file AllStar.txt
+Message received from port 8080: STORE_TO 8081
+Controller replied to store AllStar.txt in these Dstores: 8081 
+Connection established to port 8081
+Message sent to port 8081: STORE AllStar.txt 2227
+Storing file AllStar.txt to Dstore 8081
+Message received from port 8081: ACK
+ACK received from Dstore 8081 to store file AllStar.txt
+Store of file AllStar.txt to Dstore 8081 successfully completed
+Message received from port 8080: STORE_COMPLETE
+Store operation for file AllStar.txt completed
+Message sent to port 8080: STORE AllStar.txt 2227
+Store operation started for file AllStar.txt
+Message received from port 8080: ERROR_FILE_ALREADY_EXISTS AllStar.txt
+File to store AllStar.txt already exists in the data store
+Message sent to port 8080: STORE Unknown.txt 2594
+Store operation started for file Unknown.txt
+Message received from port 8080: STORE_TO 8081
+Controller replied to store Unknown.txt in these Dstores: 8081 
+Connection established to port 8081
+Message sent to port 8081: STORE Unknown.txt 2594
+Storing file Unknown.txt to Dstore 8081
+Message received from port 8081: ACK
+ACK received from Dstore 8081 to store file Unknown.txt
+Store of file Unknown.txt to Dstore 8081 successfully completed
+Message received from port 8080: STORE_COMPLETE
+Store operation for file Unknown.txt completed
+Message sent to port 8080: LIST
+List operation started
+Message received from port 8080: LIST AllStar.txt Unknown.txt
+List operation successfully completed
+Message sent to port 8080: LOAD AllStar.txt
+Load operation for file AllStar.txt started
+Message received from port 8080: LOAD_FROM 8081 2227
+Controller replied to load file AllStar.txt (size: 2227 bytes) from Dstore 8081
+Connection established to port 8081
+Message sent to port 8081: LOAD_DATA AllStar.txt
+Loading file AllStar.txt from Dstore 8081
+Load operation of file AllStar.txt from Dstore 8081 successfully completed
+Message sent to port 8080: LOAD Unknown.txt
+Load operation for file Unknown.txt started
+Message received from port 8080: LOAD_FROM 8081 2594
+Controller replied to load file Unknown.txt (size: 2594 bytes) from Dstore 8081
+Connection established to port 8081
+Message sent to port 8081: LOAD_DATA Unknown.txt
+Loading file Unknown.txt from Dstore 8081
+Load operation of file Unknown.txt from Dstore 8081 successfully completed
+Message sent to port 8080: REMOVE AllStar.txt
+Remove operation for file AllStar.txt started
+Message received from port 8080: REMOVE_COMPLETE
+Remove operation for file AllStar.txt successfully completed
+Message sent to port 8080: REMOVE Unknown.txt
+Remove operation for file Unknown.txt started
+Message received from port 8080: REMOVE_COMPLETE
+Remove operation for file Unknown.txt successfully completed
+Message sent to port 8080: LIST
+List operation started
+Message received from port 8080: LIST
+List operation successfully completed
diff --git a/client_1619025636890.log b/client_1619025636890.log
new file mode 100644
index 0000000000000000000000000000000000000000..772c59597242e3bf105ce61f59e7a45e48b5c021
--- /dev/null
+++ b/client_1619025636890.log
@@ -0,0 +1,62 @@
+Connection established to port 8080
+Message sent to port 8080: LIST
+List operation started
+Message received from port 8080: LIST
+List operation successfully completed
+Message sent to port 8080: STORE AllStar.txt 2227
+Store operation started for file AllStar.txt
+Message received from port 8080: STORE_TO 8081
+Controller replied to store AllStar.txt in these Dstores: 8081 
+Connection established to port 8081
+Message sent to port 8081: STORE AllStar.txt 2227
+Storing file AllStar.txt to Dstore 8081
+Message received from port 8081: ACK
+ACK received from Dstore 8081 to store file AllStar.txt
+Store of file AllStar.txt to Dstore 8081 successfully completed
+Message received from port 8080: STORE_COMPLETE
+Store operation for file AllStar.txt completed
+Message sent to port 8080: STORE AllStar.txt 2227
+Store operation started for file AllStar.txt
+Message received from port 8080: ERROR_FILE_ALREADY_EXISTS AllStar.txt
+File to store AllStar.txt already exists in the data store
+Message sent to port 8080: STORE Unknown.txt 2594
+Store operation started for file Unknown.txt
+Message received from port 8080: STORE_TO 8081
+Controller replied to store Unknown.txt in these Dstores: 8081 
+Connection established to port 8081
+Message sent to port 8081: STORE Unknown.txt 2594
+Storing file Unknown.txt to Dstore 8081
+Message received from port 8081: ACK
+ACK received from Dstore 8081 to store file Unknown.txt
+Store of file Unknown.txt to Dstore 8081 successfully completed
+Message received from port 8080: STORE_COMPLETE
+Store operation for file Unknown.txt completed
+Message sent to port 8080: LIST
+List operation started
+Message received from port 8080: LIST AllStar.txt Unknown.txt
+List operation successfully completed
+Message sent to port 8080: LOAD AllStar.txt
+Load operation for file AllStar.txt started
+Message received from port 8080: ERROR_LOAD
+Load operation for file AllStar.txt failed after having contacted 0 different Dstores
+Message sent to port 8080: LOAD Unknown.txt
+Load operation for file Unknown.txt started
+Message received from port 8080: LOAD_FROM 8081 2594
+Controller replied to load file Unknown.txt (size: 2594 bytes) from Dstore 8081
+Connection established to port 8081
+Message sent to port 8081: LOAD_DATA Unknown.txt
+Loading file Unknown.txt from Dstore 8081
+Load operation of file Unknown.txt from Dstore 8081 successfully completed
+Message sent to port 8080: REMOVE AllStar.txt
+Remove operation for file AllStar.txt started
+Message received from port 8080: REMOVE_COMPLETE
+Remove operation for file AllStar.txt successfully completed
+Message sent to port 8080: REMOVE Unknown.txt
+Remove operation for file Unknown.txt started
+Timeout expired while reading from port 8080
+Remove operation for file Unknown.txt not completed successfully
+Message sent to port 8080: LIST
+List operation started
+Message received from port 8080: REMOVE_COMPLETE
+ERROR: Connection closed by the Controller
+List operation failed
diff --git a/client_1619025719814.log b/client_1619025719814.log
new file mode 100644
index 0000000000000000000000000000000000000000..32523cd870d7e90323266ed22e830549dc1c652d
--- /dev/null
+++ b/client_1619025719814.log
@@ -0,0 +1,65 @@
+Connection established to port 8080
+Message sent to port 8080: LIST
+List operation started
+Message received from port 8080: LIST
+List operation successfully completed
+Message sent to port 8080: STORE AllStar.txt 2227
+Store operation started for file AllStar.txt
+Message received from port 8080: STORE_TO 8081
+Controller replied to store AllStar.txt in these Dstores: 8081 
+Connection established to port 8081
+Message sent to port 8081: STORE AllStar.txt 2227
+Storing file AllStar.txt to Dstore 8081
+Message received from port 8081: ACK
+ACK received from Dstore 8081 to store file AllStar.txt
+Store of file AllStar.txt to Dstore 8081 successfully completed
+Message received from port 8080: STORE_COMPLETE
+Store operation for file AllStar.txt completed
+Message sent to port 8080: STORE AllStar.txt 2227
+Store operation started for file AllStar.txt
+Message received from port 8080: ERROR_FILE_ALREADY_EXISTS AllStar.txt
+File to store AllStar.txt already exists in the data store
+Message sent to port 8080: STORE Unknown.txt 2594
+Store operation started for file Unknown.txt
+Message received from port 8080: STORE_TO 8081
+Controller replied to store Unknown.txt in these Dstores: 8081 
+Connection established to port 8081
+Message sent to port 8081: STORE Unknown.txt 2594
+Storing file Unknown.txt to Dstore 8081
+Message received from port 8081: ACK
+ACK received from Dstore 8081 to store file Unknown.txt
+Store of file Unknown.txt to Dstore 8081 successfully completed
+Message received from port 8080: STORE_COMPLETE
+Store operation for file Unknown.txt completed
+Message sent to port 8080: LIST
+List operation started
+Message received from port 8080: LIST AllStar.txt Unknown.txt
+List operation successfully completed
+Message sent to port 8080: LOAD AllStar.txt
+Load operation for file AllStar.txt started
+Message received from port 8080: LOAD_FROM 8081 2227
+Controller replied to load file AllStar.txt (size: 2227 bytes) from Dstore 8081
+Connection established to port 8081
+Message sent to port 8081: LOAD_DATA AllStar.txt
+Loading file AllStar.txt from Dstore 8081
+Load operation of file AllStar.txt from Dstore 8081 successfully completed
+Message sent to port 8080: LOAD Unknown.txt
+Load operation for file Unknown.txt started
+Message received from port 8080: LOAD_FROM 8081 2594
+Controller replied to load file Unknown.txt (size: 2594 bytes) from Dstore 8081
+Connection established to port 8081
+Message sent to port 8081: LOAD_DATA Unknown.txt
+Loading file Unknown.txt from Dstore 8081
+Load operation of file Unknown.txt from Dstore 8081 successfully completed
+Message sent to port 8080: REMOVE AllStar.txt
+Remove operation for file AllStar.txt started
+Message received from port 8080: REMOVE_COMPLETE
+Remove operation for file AllStar.txt successfully completed
+Message sent to port 8080: REMOVE Unknown.txt
+Remove operation for file Unknown.txt started
+Message received from port 8080: REMOVE_COMPLETE
+Remove operation for file Unknown.txt successfully completed
+Message sent to port 8080: LIST
+List operation started
+Message received from port 8080: LIST
+List operation successfully completed
diff --git a/client_1619034515898.log b/client_1619034515898.log
new file mode 100644
index 0000000000000000000000000000000000000000..32523cd870d7e90323266ed22e830549dc1c652d
--- /dev/null
+++ b/client_1619034515898.log
@@ -0,0 +1,65 @@
+Connection established to port 8080
+Message sent to port 8080: LIST
+List operation started
+Message received from port 8080: LIST
+List operation successfully completed
+Message sent to port 8080: STORE AllStar.txt 2227
+Store operation started for file AllStar.txt
+Message received from port 8080: STORE_TO 8081
+Controller replied to store AllStar.txt in these Dstores: 8081 
+Connection established to port 8081
+Message sent to port 8081: STORE AllStar.txt 2227
+Storing file AllStar.txt to Dstore 8081
+Message received from port 8081: ACK
+ACK received from Dstore 8081 to store file AllStar.txt
+Store of file AllStar.txt to Dstore 8081 successfully completed
+Message received from port 8080: STORE_COMPLETE
+Store operation for file AllStar.txt completed
+Message sent to port 8080: STORE AllStar.txt 2227
+Store operation started for file AllStar.txt
+Message received from port 8080: ERROR_FILE_ALREADY_EXISTS AllStar.txt
+File to store AllStar.txt already exists in the data store
+Message sent to port 8080: STORE Unknown.txt 2594
+Store operation started for file Unknown.txt
+Message received from port 8080: STORE_TO 8081
+Controller replied to store Unknown.txt in these Dstores: 8081 
+Connection established to port 8081
+Message sent to port 8081: STORE Unknown.txt 2594
+Storing file Unknown.txt to Dstore 8081
+Message received from port 8081: ACK
+ACK received from Dstore 8081 to store file Unknown.txt
+Store of file Unknown.txt to Dstore 8081 successfully completed
+Message received from port 8080: STORE_COMPLETE
+Store operation for file Unknown.txt completed
+Message sent to port 8080: LIST
+List operation started
+Message received from port 8080: LIST AllStar.txt Unknown.txt
+List operation successfully completed
+Message sent to port 8080: LOAD AllStar.txt
+Load operation for file AllStar.txt started
+Message received from port 8080: LOAD_FROM 8081 2227
+Controller replied to load file AllStar.txt (size: 2227 bytes) from Dstore 8081
+Connection established to port 8081
+Message sent to port 8081: LOAD_DATA AllStar.txt
+Loading file AllStar.txt from Dstore 8081
+Load operation of file AllStar.txt from Dstore 8081 successfully completed
+Message sent to port 8080: LOAD Unknown.txt
+Load operation for file Unknown.txt started
+Message received from port 8080: LOAD_FROM 8081 2594
+Controller replied to load file Unknown.txt (size: 2594 bytes) from Dstore 8081
+Connection established to port 8081
+Message sent to port 8081: LOAD_DATA Unknown.txt
+Loading file Unknown.txt from Dstore 8081
+Load operation of file Unknown.txt from Dstore 8081 successfully completed
+Message sent to port 8080: REMOVE AllStar.txt
+Remove operation for file AllStar.txt started
+Message received from port 8080: REMOVE_COMPLETE
+Remove operation for file AllStar.txt successfully completed
+Message sent to port 8080: REMOVE Unknown.txt
+Remove operation for file Unknown.txt started
+Message received from port 8080: REMOVE_COMPLETE
+Remove operation for file Unknown.txt successfully completed
+Message sent to port 8080: LIST
+List operation started
+Message received from port 8080: LIST
+List operation successfully completed
diff --git a/client_1619034593200.log b/client_1619034593200.log
new file mode 100644
index 0000000000000000000000000000000000000000..e94a3610b70c571e8a6a7a864055f9d5d1cc4a4b
--- /dev/null
+++ b/client_1619034593200.log
@@ -0,0 +1,41 @@
+Connection established to port 8080
+Message sent to port 8080: LIST
+List operation started
+Message received from port 8080: LIST
+List operation successfully completed
+Message sent to port 8080: STORE AllStar.txt 2227
+Store operation started for file AllStar.txt
+Message received from port 8080: STORE_TO 8081
+Controller replied to store AllStar.txt in these Dstores: 8081 
+Store of file AllStar.txt to Dstore 8081 failed
+Message received from port 8080: STORE_COMPLETE
+Store operation for file AllStar.txt completed
+Message sent to port 8080: STORE AllStar.txt 2227
+Store operation started for file AllStar.txt
+Message received from port 8080: ERROR_FILE_ALREADY_EXISTS AllStar.txt
+File to store AllStar.txt already exists in the data store
+Message sent to port 8080: STORE Unknown.txt 2594
+Store operation started for file Unknown.txt
+Message received from port 8080: STORE_TO 8081
+Controller replied to store Unknown.txt in these Dstores: 8081 
+Store of file Unknown.txt to Dstore 8081 failed
+Message received from port 8080: STORE_COMPLETE
+Store operation for file Unknown.txt completed
+Message sent to port 8080: LIST
+List operation started
+Message received from port 8080: LIST AllStar.txt Unknown.txt
+List operation successfully completed
+Message sent to port 8080: LOAD AllStar.txt
+Load operation for file AllStar.txt started
+Message received from port 8080: ERROR_LOAD
+Load operation for file AllStar.txt failed after having contacted 0 different Dstores
+Message sent to port 8080: LOAD Unknown.txt
+Load operation for file Unknown.txt started
+Message received from port 8080: ERROR_LOAD
+Load operation for file Unknown.txt failed after having contacted 0 different Dstores
+Message sent to port 8080: REMOVE AllStar.txt
+Remove operation for file AllStar.txt started
+Message received from port 8080: REMOVE_COMPLETE
+Remove operation for file AllStar.txt successfully completed
+Message sent to port 8080: REMOVE Unknown.txt
+Remove operation for file Unknown.txt started
diff --git a/client_1619036545308.log b/client_1619036545308.log
new file mode 100644
index 0000000000000000000000000000000000000000..7f0f66646cd55d86566dcfb3cebc7cb9c5091b49
--- /dev/null
+++ b/client_1619036545308.log
@@ -0,0 +1,44 @@
+Connection established to port 8080
+Message sent to port 8080: LIST
+List operation started
+Message received from port 8080: LIST
+List operation successfully completed
+Message sent to port 8080: STORE AllStar.txt 2227
+Store operation started for file AllStar.txt
+Message received from port 8080: STORE_TO 8081
+Controller replied to store AllStar.txt in these Dstores: 8081 
+Store of file AllStar.txt to Dstore 8081 failed
+Message received from port 8080: STORE_COMPLETE
+Store operation for file AllStar.txt completed
+Message sent to port 8080: STORE AllStar.txt 2227
+Store operation started for file AllStar.txt
+Message received from port 8080: ERROR_FILE_ALREADY_EXISTS AllStar.txt
+File to store AllStar.txt already exists in the data store
+Message sent to port 8080: STORE Unknown.txt 2594
+Store operation started for file Unknown.txt
+Timeout expired while reading from port 8080
+Message sent to port 8080: LIST
+List operation started
+Message received from port 8080: LIST AllStar.txt Unknown.txt
+List operation successfully completed
+Message sent to port 8080: LOAD AllStar.txt
+Load operation for file AllStar.txt started
+Message received from port 8080: ERROR_LOAD
+Load operation for file AllStar.txt failed after having contacted 0 different Dstores
+Message sent to port 8080: LOAD Unknown.txt
+Load operation for file Unknown.txt started
+Message received from port 8080: ERROR_LOAD
+Load operation for file Unknown.txt failed after having contacted 0 different Dstores
+Message sent to port 8080: REMOVE AllStar.txt
+Remove operation for file AllStar.txt started
+Timeout expired while reading from port 8080
+Remove operation for file AllStar.txt not completed successfully
+Message sent to port 8080: REMOVE Unknown.txt
+Remove operation for file Unknown.txt started
+Message received from port 8080: REMOVE_COMPLETE
+Remove operation for file Unknown.txt successfully completed
+Message sent to port 8080: LIST
+List operation started
+Message received from port 8080: REMOVE_COMPLETE
+ERROR: Connection closed by the Controller
+List operation failed
diff --git a/client_1619039097527.log b/client_1619039097527.log
new file mode 100644
index 0000000000000000000000000000000000000000..a89806a2dec11faa27fa11d49595d85fb3ec01d1
--- /dev/null
+++ b/client_1619039097527.log
@@ -0,0 +1,26 @@
+Connection established to port 8080
+Message sent to port 8080: STORE AllStar.txt 2227
+Store operation started for file AllStar.txt
+Message received from port 8080: ERROR_NOT_ENOUGH_DSTORES
+ERROR: Not enough Dstores have joined the data store yet
+Message sent to port 8080: STORE Unknown.txt 2594
+Store operation started for file Unknown.txt
+Message received from port 8080: ERROR_NOT_ENOUGH_DSTORES
+ERROR: Not enough Dstores have joined the data store yet
+Message sent to port 8080: STORE PumpkinHill.txt 2755
+Store operation started for file PumpkinHill.txt
+Message received from port 8080: ERROR_NOT_ENOUGH_DSTORES
+ERROR: Not enough Dstores have joined the data store yet
+Message sent to port 8080: STORE SnowHalation.txt 1006
+Store operation started for file SnowHalation.txt
+Message received from port 8080: ERROR_NOT_ENOUGH_DSTORES
+ERROR: Not enough Dstores have joined the data store yet
+Message sent to port 8080: STORE Grandad.txt 349
+Store operation started for file Grandad.txt
+Message received from port 8080: ERROR_NOT_ENOUGH_DSTORES
+ERROR: Not enough Dstores have joined the data store yet
+Message sent to port 8080: LIST
+List operation started
+Message received from port 8080: ERROR_NOT_ENOUGH_DSTORES
+ERROR: Not enough Dstores have joined the data store yet
+List operation failed
diff --git a/client_1619039957471.log b/client_1619039957471.log
new file mode 100644
index 0000000000000000000000000000000000000000..a89806a2dec11faa27fa11d49595d85fb3ec01d1
--- /dev/null
+++ b/client_1619039957471.log
@@ -0,0 +1,26 @@
+Connection established to port 8080
+Message sent to port 8080: STORE AllStar.txt 2227
+Store operation started for file AllStar.txt
+Message received from port 8080: ERROR_NOT_ENOUGH_DSTORES
+ERROR: Not enough Dstores have joined the data store yet
+Message sent to port 8080: STORE Unknown.txt 2594
+Store operation started for file Unknown.txt
+Message received from port 8080: ERROR_NOT_ENOUGH_DSTORES
+ERROR: Not enough Dstores have joined the data store yet
+Message sent to port 8080: STORE PumpkinHill.txt 2755
+Store operation started for file PumpkinHill.txt
+Message received from port 8080: ERROR_NOT_ENOUGH_DSTORES
+ERROR: Not enough Dstores have joined the data store yet
+Message sent to port 8080: STORE SnowHalation.txt 1006
+Store operation started for file SnowHalation.txt
+Message received from port 8080: ERROR_NOT_ENOUGH_DSTORES
+ERROR: Not enough Dstores have joined the data store yet
+Message sent to port 8080: STORE Grandad.txt 349
+Store operation started for file Grandad.txt
+Message received from port 8080: ERROR_NOT_ENOUGH_DSTORES
+ERROR: Not enough Dstores have joined the data store yet
+Message sent to port 8080: LIST
+List operation started
+Message received from port 8080: ERROR_NOT_ENOUGH_DSTORES
+ERROR: Not enough Dstores have joined the data store yet
+List operation failed
diff --git a/downloads/AllStar.txt b/downloads/AllStar.txt
new file mode 100644
index 0000000000000000000000000000000000000000..26e7fef6a612a37a14b5c714eb89e0db758c453f
--- /dev/null
+++ b/downloads/AllStar.txt
@@ -0,0 +1,68 @@
+Somebody once told me the world is gonna roll me
+I ain't the sharpest tool in the shed
+She was looking kind of dumb with her finger and her thumb
+In the shape of an "L" on her forehead
+
+Well, the years start coming and they don't stop coming
+Fed to the rules and I hit the ground running
+Didn't make sense not to live for fun
+Your brain gets smart but your head gets dumb
+
+So much to do, so much to see
+So what's wrong with taking the back streets?
+You'll never know if you don't go
+You'll never shine if you don't glow
+
+Hey, now, you're an all-star, get your game on, go play
+Hey, now, you're a rock star, get the show on, get paid
+And all that glitters is gold
+Only shooting stars break the mold
+
+It's a cool place and they say it gets colder
+You're bundled up now wait 'til you get older
+But the meteor men beg to differ
+Judging by the hole in the satellite picture
+
+The ice we skate is getting pretty thin
+The water's getting warm so you might as well swim
+My world's on fire. How about yours?
+That's the way I like it and I'll never get bored
+
+Hey, now, you're an all-star, get your game on, go play
+Hey, now, you're a rock star, get the show on, get paid
+And all that glitters is gold
+Only shooting stars break the mold
+
+Go for the moon
+Go for the moon
+Go for the moon
+Go for the moon
+
+Hey, now, you're an all-star, get your game on, go play
+Hey, now, you're a rock star, get the show on, get paid
+And all that glitters is gold
+Only shooting stars
+
+Somebody once asked could I spare some change for gas
+I need to get myself away from this place
+I said yep, what a concept
+I could use a little fuel myself
+And we could all use a little change
+
+Well, the years start coming and they don't stop coming
+Fed to the rules and I hit the ground running
+Didn't make sense not to live for fun
+Your brain gets smart but your head gets dumb
+
+So much to do, so much to see
+So what's wrong with taking the back streets?
+You'll never know if you don't go
+You'll never shine if you don't glow
+
+Hey, now, you're an all star, get your game on, go play
+Hey, now, you're a rock star, get the show on, get paid
+And all that glitters is gold
+Only shooting stars break the mold
+
+And all that glitters is gold
+Only shooting stars break the mold
diff --git a/downloads/Unknown.txt b/downloads/Unknown.txt
new file mode 100644
index 0000000000000000000000000000000000000000..bc6fa8e0659ed9ceac67a549318061a700ef5180
--- /dev/null
+++ b/downloads/Unknown.txt
@@ -0,0 +1,74 @@
+Here I come, rougher than the rest of them
+The best of them, tougher than leather
+You can call me Knuckles, unlike Sonic I don't chuckle
+I'd rather flex my muscles
+
+I'm hard as nails, it ain't hard to tell
+I break 'em down whether they're solid or frail
+Unlike the rest I'm independent since my first breath
+First test, feel the right, than the worst's left
+
+Born on an island in the heavens
+The blood of my ancestors flows inside me
+My duty is to save the flower
+From evil deterioration
+
+I will be the one to set your heart free, true
+Cleanse yourself of them evil spirits that's in you
+
+Streaking lights, loud sounds, and instincts
+Are the elements that keep me going
+I am fighting my own mission
+Nothing's gonna stand in my way
+
+I will be the one to set your heart free, true
+Cleanse yourself of them evil spirits that's in you
+
+Won't be frightened, I'll stand up to all the pain and turmoil
+Just believe in myself, won't rely on others
+Get this power to wipe out the havoc and anarchy
+This is my planet, gonna fight for my destiny
+
+Here I come, rougher than the rest of them
+The best of them, tougher than leather
+You can call me Knuckles, unlike Sonic I don't chuckle
+I'd rather flex my muscles
+
+I'm hard as nails, it ain't hard to tell
+I break 'em down whether they're solid or frail
+Unlike the rest I'm independent since my first breath
+First test, feel the right, than the worst's left
+
+I have no such things as weak spots
+Don't approve of him but gotta trust him
+This alliance has a purpose
+This partnership is only temporary
+
+I will be the one to set your heart free, true
+Cleanse yourself of evil spirits that got in you
+
+Won't be frightened, I'll stand up to all the pain and turmoil
+Just believe in myself, won't rely on others
+Freedom will be waiting when serenity is restored
+This is my planet, I shall not surrender
+
+Won't be frightened, I'll stand up to all the pain and turmoil
+Just believe in myself, won't rely on others
+Get this power to wipe out the havoc and anarchy
+This is my planet, gonna fight
+
+Won't be frightened, I'll stand up to all the pain and turmoil
+Just believe in myself, won't rely on others
+Freedom will be waiting when serenity is restored
+This is my planet, I shall not surrender
+
+The new porcupine on the block with the buff chest
+In the wilderness with the ruggedness
+Knock, knock, it's Knuckles, the bloat thrower
+Independent flower, Magical Emerald holder
+I'll give you the coldest shoulder
+My spikes go through boulders, that's why I stay a loner
+I was born by myself, I don't need a posse
+I get it on by myself, adversaries get shelved
+
+Right on!