diff --git a/testing/ClientMain.class b/ClientAndLoggers/ClientMain.class
similarity index 88%
rename from testing/ClientMain.class
rename to ClientAndLoggers/ClientMain.class
index 27b4b0711be390b9e87535c87d214850f4561f7f..a51da4fd2f5f2b375bfa6a9dd450c8d797f44c1b 100644
Binary files a/testing/ClientMain.class and b/ClientAndLoggers/ClientMain.class differ
diff --git a/testing/ClientMain.java b/ClientAndLoggers/ClientMain.java
similarity index 98%
rename from testing/ClientMain.java
rename to ClientAndLoggers/ClientMain.java
index 0c124ad351c700dbce50edee6eba64001eac82c5..3f79c95b65126fc49f0afc6934ddc11c9810c55b 100644
--- a/testing/ClientMain.java
+++ b/ClientAndLoggers/ClientMain.java
@@ -1,6 +1,5 @@
 import java.io.File;
 import java.io.IOException;
-import java.util.Random;
 
 public class ClientMain {
 	
diff --git a/testing/ControllerLogger.java b/ClientAndLoggers/ControllerLogger.java
similarity index 100%
rename from testing/ControllerLogger.java
rename to ClientAndLoggers/ControllerLogger.java
diff --git a/testing/DstoreLogger.java b/ClientAndLoggers/DstoreLogger.java
similarity index 100%
rename from testing/DstoreLogger.java
rename to ClientAndLoggers/DstoreLogger.java
diff --git a/testing/Logger.java b/ClientAndLoggers/Logger.java
similarity index 100%
rename from testing/Logger.java
rename to ClientAndLoggers/Logger.java
diff --git a/testing/Protocol.java b/ClientAndLoggers/Protocol.java
similarity index 99%
rename from testing/Protocol.java
rename to ClientAndLoggers/Protocol.java
index 53ae5fb9d540a65ea1aec266bd63f9beefe4c44d..6c800cb8353680e56601366c7fb00b982eaaeef9 100644
--- a/testing/Protocol.java
+++ b/ClientAndLoggers/Protocol.java
@@ -1,4 +1,3 @@
-
 public class Protocol {
 
 	// messages from Clients
diff --git a/testing/client-1.0.2.jar b/ClientAndLoggers/client-1.0.2.jar
similarity index 100%
rename from testing/client-1.0.2.jar
rename to ClientAndLoggers/client-1.0.2.jar
diff --git a/ClientAndLoggers/test.txt b/ClientAndLoggers/test.txt
new file mode 100644
index 0000000000000000000000000000000000000000..abd91bd4652ea1bfd4969a0a8585cc2f8acb645f
--- /dev/null
+++ b/ClientAndLoggers/test.txt
@@ -0,0 +1 @@
+a test file
\ No newline at end of file
diff --git a/Dstores/dstore/test.txt b/Dstores/dstore/test.txt
new file mode 100644
index 0000000000000000000000000000000000000000..abd91bd4652ea1bfd4969a0a8585cc2f8acb645f
--- /dev/null
+++ b/Dstores/dstore/test.txt
@@ -0,0 +1 @@
+a test file
\ No newline at end of file
diff --git a/dstore/test2.txt b/Dstores/dstore/test2.txt
similarity index 100%
rename from dstore/test2.txt
rename to Dstores/dstore/test2.txt
diff --git a/Dstores/dstore2/test.txt b/Dstores/dstore2/test.txt
new file mode 100644
index 0000000000000000000000000000000000000000..abd91bd4652ea1bfd4969a0a8585cc2f8acb645f
--- /dev/null
+++ b/Dstores/dstore2/test.txt
@@ -0,0 +1 @@
+a test file
\ No newline at end of file
diff --git a/dstore2/test2.txt b/Dstores/dstore2/test2.txt
similarity index 100%
rename from dstore2/test2.txt
rename to Dstores/dstore2/test2.txt
diff --git a/dstore2/test3.txt b/Dstores/dstore2/test3.txt
similarity index 100%
rename from dstore2/test3.txt
rename to Dstores/dstore2/test3.txt
diff --git a/Dstores/dstore3/test.txt b/Dstores/dstore3/test.txt
new file mode 100644
index 0000000000000000000000000000000000000000..abd91bd4652ea1bfd4969a0a8585cc2f8acb645f
--- /dev/null
+++ b/Dstores/dstore3/test.txt
@@ -0,0 +1 @@
+a test file
\ No newline at end of file
diff --git a/dstore3/test2.txt b/Dstores/dstore3/test2.txt
similarity index 100%
rename from dstore3/test2.txt
rename to Dstores/dstore3/test2.txt
diff --git a/dstore3/test3.txt b/Dstores/dstore3/test3.txt
similarity index 100%
rename from dstore3/test3.txt
rename to Dstores/dstore3/test3.txt
diff --git a/dstore3/test4.txt b/Dstores/dstore3/test4.txt
similarity index 100%
rename from dstore3/test4.txt
rename to Dstores/dstore3/test4.txt
diff --git a/dstore/test.txt b/dstore/test.txt
deleted file mode 100644
index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..0000000000000000000000000000000000000000
diff --git a/dstore2/test.txt b/dstore2/test.txt
deleted file mode 100644
index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..0000000000000000000000000000000000000000
diff --git a/dstore3/test.txt b/dstore3/test.txt
deleted file mode 100644
index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..0000000000000000000000000000000000000000
diff --git a/src/ftp/Controller.java b/src/ftp/Controller.java
index 3efbd6efa22f729606be673f2f631a89caaadfff..45b985e57e50b269b28a5ddc783af16ad8ae6de3 100644
--- a/src/ftp/Controller.java
+++ b/src/ftp/Controller.java
@@ -63,7 +63,6 @@ public class Controller extends Server {
         String command = args[0];
 
         if (command.equals("JOIN")) {
-
             Integer port = Integer.parseInt(args[1]);
 
             send("LIST", client);
@@ -83,11 +82,9 @@ public class Controller extends Server {
 
 
             send("ACK", client);
-
         }
 
         else if (command.equals("STORE")) {
-
             String filename = args[1];
             Long filesize = Long.parseLong(args[2]);
 
@@ -105,12 +102,12 @@ public class Controller extends Server {
                     collect(Collectors.joining(" "));
 
 
-            send("STORE_TO " + ports, client);
+            file.setStoreAcksQuota(r);
 
+            send("STORE_TO " + ports, client);
         }
 
         else if (command.equals("STORE_ACK")) {
-
             String filename = args[1];
             DstoreFile file = fileIndex.get(filename);
 
@@ -119,8 +116,9 @@ public class Controller extends Server {
             if ( file.ackCheck() ) {
                 file.setStoreInProgress(false);
                 file.setStoreComplete(true);
-            }
 
+                threadIDOutput("Store of file " + filename + " complete");
+            }
         }
     }
 
diff --git a/src/ftp/Dstore.java b/src/ftp/Dstore.java
index 315694ec9bfb3c638d95649abb14583d89b408be..63af0af77baaa006491d562d5b65159acd3576db 100644
--- a/src/ftp/Dstore.java
+++ b/src/ftp/Dstore.java
@@ -37,8 +37,7 @@ public class Dstore extends Server {
         this.file_folder = file_folder;
 
 
-        Socket controller = null;
-        connectToController(controller);
+        Socket controller = connectToController();
 
 
         if (controller != null) {
@@ -52,17 +51,19 @@ public class Dstore extends Server {
 
 
 
-    public Socket connectToController(Socket controller) {
+    public Socket connectToController() {
+        Socket controller = null;
+
         Boolean joined = false;
 
         for (int i = 0; (i < 10) && !joined; i++) {
             try { controller = new Socket("localhost",cport); joined = true; }
             catch (IOException e) {
                 threadIDErr(e.getMessage());
-            }
 
-            try {threadIDErr("Retrying Connection..."); Thread.sleep(1000);}
-            catch (InterruptedException e) {threadIDErr(e.getMessage());}
+                try {threadIDErr("Retrying Connection..."); Thread.sleep(1000);}
+                catch (InterruptedException exc) {threadIDErr(exc.getMessage());}
+            }
         }
 
         return controller;
@@ -87,35 +88,36 @@ public class Dstore extends Server {
     protected void handleRequest(String request, Socket client) {
         String args[] = request.split(" ");
 
-        switch(args[0]) {
-            case "LIST":
-                File folder = new File(file_folder);
 
+        String command = args[0];
+
+        if (command.equals("LIST")) {
+            File folder = new File(file_folder);
 
-                //todo use stream instead
-                //
-                List<String> files = new ArrayList<String>() {{
-                    for (File file : folder.listFiles()) add(file.getName() + " " + file.length());
-                }};
 
-                // todo use joining instead of reduce
-                //
-                String ident = files.get(0);
-                files.remove(0);
+            //todo use stream instead
+            //
+            List<String> files = new ArrayList<String>() {{
+                for (File file : folder.listFiles()) add(file.getName() + " " + file.length());
+            }};
 
-                String fileMessage = files.stream()
-                        .reduce( ident, (file1, file2) -> (file1 + "|" + file2) );
+            // todo use joining instead of reduce
+            //
+            String ident = files.get(0);
+            files.remove(0);
 
+            String fileMessage = files.stream()
+                    .reduce(ident, (file1, file2) -> (file1 + "|" + file2));
 
-                send(fileMessage, client);
 
+            send(fileMessage, client);
 
-                String response = readSocket(client);
-                if (response.equals("ACK")) threadIDOutput("Successfully joined Controller");
 
-                break;
+            String response = readSocket(client);
+            if (response.equals("ACK")) threadIDOutput("Successfully joined Controller");
+        }
 
-            case "STORE":
+        else if (command.equals("STORE")) {
                 String filename = args[1];
                 Long filesize = Long.parseLong(args[2]);
 
@@ -129,14 +131,12 @@ public class Dstore extends Server {
                 }
 
 
-                Socket controller = null;
-                connectToController(controller);
+                Socket controller = connectToController();
 
                 if (controller != null) {
                     send("STORE_ACK " + filename, controller);
-                }
-                else threadIDErr("Unable to connect to Controller");
-        }
+                } else threadIDErr("Unable to connect to Controller");
+            }
     }
 
 
@@ -150,10 +150,14 @@ public class Dstore extends Server {
         FileOutputStream out = new FileOutputStream(outputFile);
 
 
+        threadIDOutput("Starting file Read...");
+
         while ((buflen = in.read(buf)) != -1) {
             out.write(buf,0,buflen);
         }
 
+        threadIDOutput("Finished file Write");
+
 
         in.close(); out.close();
 
diff --git a/src/ftp/DstoreConnection.java b/src/ftp/DstoreConnection.java
index b77ca1725fd444b5dfef67b8ccd101d679106551..b9ae67189e09de550057872399c07040294f8350 100644
--- a/src/ftp/DstoreConnection.java
+++ b/src/ftp/DstoreConnection.java
@@ -24,9 +24,9 @@ public class DstoreConnection {
 
 
 
-    public void addFile(String filename, Long filesize) { file_index.addFile(filename,filesize).addDstore(this); }
+    public void addFile(String filename, Long filesize) { DstoreFile file = file_index.addFile(filename,filesize); }
 
-    public void addFile(DstoreFile file) { file_index.put(file.getFilename(),file).addDstore(this); }
+    public void addFile(DstoreFile file) { file_index.put(file.getFilename(),file); }
 
 
 
diff --git a/src/ftp/Server.java b/src/ftp/Server.java
index aba6c7ccf5e46a7c1987ed83e01fd9f7c8c5ebd8..5a70e66f48152b2a5d5b1170d6a5516e9471731a 100644
--- a/src/ftp/Server.java
+++ b/src/ftp/Server.java
@@ -26,6 +26,8 @@ public abstract class Server {
                             } catch (Exception e) {
                                 threadIDErr("Exception thrown: " + e.getMessage());
                             }
+
+                            threadIDOutput("Thread Stopping");
                         }
                     }).start();
                 } catch (Exception e) {
diff --git a/testing/test.txt b/testing/test.txt
deleted file mode 100644
index d800886d9c86731ae5c4a62b0b77c437015e00d2..0000000000000000000000000000000000000000
--- a/testing/test.txt
+++ /dev/null
@@ -1 +0,0 @@
-123
\ No newline at end of file