diff --git a/src/ftp/Controller.java b/src/ftp/Controller.java
index 388b890e9ac684a6aef9d491dc409eae7209fa49..695a828f24e977dcc99e494d712a4ffc1dfbfd3d 100644
--- a/src/ftp/Controller.java
+++ b/src/ftp/Controller.java
@@ -27,6 +27,8 @@ public class Controller extends Server {
         this.timeout = timeout;
         this.rbPeriod = rbPeriod;
 
+        allocateBufferBytes(256);
+
         openSelector();
     }
 
@@ -46,13 +48,13 @@ public class Controller extends Server {
 
 
     @Override
-    protected void handleRequest(String request, SelectionKey key, ByteBuffer buffer) {
+    protected void handleRequest(String request, SelectionKey key) {
         String args[] = request.split(" ");
 
         switch(args[0]) {
             case "JOIN":
                 key.attach(new DstoreConnection(new Index(), Integer.parseInt(args[1])));
-                sendMessage("LIST",key,buffer);
+                sendMessage("LIST",key);
                 break;
         }
     }
diff --git a/src/ftp/dstore1/Dstore.java b/src/ftp/Dstore.java
similarity index 85%
rename from src/ftp/dstore1/Dstore.java
rename to src/ftp/Dstore.java
index 5057094d23c75b51b31f3fca1af34f592009fcaf..18735c1e675407e5f42afb2816e6185d755e467a 100644
--- a/src/ftp/dstore1/Dstore.java
+++ b/src/ftp/Dstore.java
@@ -1,4 +1,4 @@
-package ftp.dstore1;
+package ftp;
 
 import ftp.DstoreConnection;
 import ftp.Index;
@@ -38,9 +38,6 @@ public class Dstore extends Server {
         this.file_folder = file_folder;
 
 
-        ByteBuffer buffer = ByteBuffer.allocate(256);
-
-
         // opening connection to controller
         // open(addr) acts as convenience method for open() and connect()
         // in blocking mode, so will wait for response before progressing
@@ -53,7 +50,9 @@ public class Dstore extends Server {
         }
 
 
-        sendMessage("JOIN " + port, toController, buffer);
+        allocateBufferBytes(256);
+
+        sendMessage("JOIN " + port, toController);
 
         openSelector(new SocketChannel[] {toController});
     }
@@ -92,21 +91,17 @@ public class Dstore extends Server {
 
 
     @Override
-    protected void handleRequest(String request, SelectionKey key, ByteBuffer buffer) {
+    protected void handleRequest(String request, SelectionKey key) {
         String args[] = request.split(" ");
 
         switch(args[0]) {
             case "LIST":
-                File folder = new File("./storage");
+                File folder = new File("storage");
                 String[] files = folder.list();
-//                String fileNames = Arrays.stream(list())
-//                        .map(File::getName)
-//                        .reduce("", (file1, file2) -> file1 + " " + file2);
                 String fileNames = Arrays.stream(files)
                         .reduce("", (file1, file2) -> file1 + " " + file2);
-                System.out.println(fileNames);
 
-                sendMessage(fileNames, key, buffer);
+                sendMessage(fileNames, key);
                 break;
         }
     }
diff --git a/src/ftp/Server.java b/src/ftp/Server.java
index 1e50b2532b254be20ad19a4c6343e474aa6813ee..2794745e0ca4bb2469a98506c05b210b9c13143c 100644
--- a/src/ftp/Server.java
+++ b/src/ftp/Server.java
@@ -15,15 +15,20 @@ public abstract class Server {
     protected int timeout;
 
     protected Selector selector;
+    private ByteBuffer buffer;
+
+
+    protected void allocateBufferBytes(int bytes) {
+        buffer = ByteBuffer.allocate(bytes);               //buffer to read/write
+    }
 
 
     /**
      * @desc abstract method which handles server requests based on implmentation
      * @param request request to be handled
      * @param key corresponding key
-     * @param buffer buffer to be used for r/w
      */
-    protected abstract void handleRequest(String request, SelectionKey key, ByteBuffer buffer);
+    protected abstract void handleRequest(String request, SelectionKey key);
 
 
     /**
@@ -36,7 +41,6 @@ public abstract class Server {
         serverSocket.bind(new InetSocketAddress(port));
         serverSocket.configureBlocking(false);
         serverSocket.register(selector, SelectionKey.OP_ACCEPT);
-        ByteBuffer buffer = ByteBuffer.allocate(256);               //buffer to read/write
 
         System.out.println("Selector Started");
 
@@ -59,8 +63,8 @@ public abstract class Server {
 
                 if (key.isReadable()) {
                     System.out.println("Channel has data to be read");
-                    String request = takeRequest(buffer, key);
-                    handleRequest(request, key, buffer);
+                    String request = takeRequest(key);
+                    handleRequest(request, key);
                 }
 
                 iter.remove();
@@ -87,7 +91,7 @@ public abstract class Server {
             channel.register(selector, SelectionKey.OP_READ | SelectionKey.OP_WRITE);
         }
 
-        ByteBuffer buffer = ByteBuffer.allocate(256);               //buffer to read/write
+        buffer = ByteBuffer.allocate(256);               //buffer to read/write
 
         System.out.println("Selector Started");
 
@@ -110,8 +114,8 @@ public abstract class Server {
 
                 if (key.isReadable()) {
                     System.out.println("Channel has data to be read");
-                    String request = takeRequest(buffer, key);
-                    handleRequest(request, key, buffer);
+                    String request = takeRequest(key);
+                    handleRequest(request, key);
                 }
 
                 iter.remove();
@@ -136,12 +140,11 @@ public abstract class Server {
 
     /**
      * @desc reads request from buffer
-     * @param buffer buffer to read request from
      * @param key key linking to the channel
      * @return returns the request
      * @throws IOException
      */
-    protected String takeRequest(ByteBuffer buffer, SelectionKey key) throws IOException {
+    protected String takeRequest(SelectionKey key) throws IOException {
         SocketChannel client = (SocketChannel) key.channel();
         client.read(buffer);
         String request = new String(buffer.array()).trim();
@@ -208,10 +211,9 @@ public abstract class Server {
      * @desc sends a message using a given key, does not wait for a response
      * @param msg message to be sent
      * @param key key of corresponding channel to send message through
-     * @param buffer buffer to r/w messages
      * @return
      */
-    protected void sendMessage(String msg, SelectionKey key, ByteBuffer buffer) {
+    protected void sendMessage(String msg, SelectionKey key) {
         buffer = ByteBuffer.wrap(msg.getBytes());
 
         SocketChannel channel = (SocketChannel) key.channel();
@@ -230,10 +232,9 @@ public abstract class Server {
      * @desc sends a message using a given channel, does not wait for a response
      * @param msg message to be sent
      * @param channel channel to send message through
-     * @param buffer buffer to r/w messages
      * @return
      */
-    protected void sendMessage(String msg, SocketChannel channel, ByteBuffer buffer) {
+    protected void sendMessage(String msg, SocketChannel channel) {
         buffer = ByteBuffer.wrap(msg.getBytes());
 
         try {
diff --git a/src/ftp/dstore1/storage/test.txt b/storage/test.txt
similarity index 100%
rename from src/ftp/dstore1/storage/test.txt
rename to storage/test.txt
diff --git a/storage/test1.txt b/storage/test1.txt
new file mode 100644
index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
diff --git a/storage/test2.txt b/storage/test2.txt
new file mode 100644
index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391