private byte[][] fetchFile (String filename) throws IOException, ClassNotFoundException {
			// Request the file from the server
			Message msg = new Message(true, COMMAND.F, 0, filename, new byte[0][0]);
			objectToServer.writeObject(msg);
			objectToServer.flush();
			
			// Check incoming message for acknowledgement
			if(!receiveAck()) {
				throw new FileNotFoundException();
			}
			// Add all byte[][] together
			ByteArrayOutputStream baos = new ByteArrayOutputStream();			// - an intermediate for writing bytes to the byte[]
			int totalRead = 0;													// - record the total number of bits read
			do {
				msg = (Message) objectFromServer.readObject();
				baos.write(msg.getData()[0], 0, msg.getDataLength());
				totalRead += msg.getDataLength();
			} while(!msg.isLastMessage());
			
			// Return as byte[][]
			byte[] byteArray = baos.toByteArray();
			byte[][] data = new byte[1][byteArray.length];
			data[0] = byteArray;
			return data;
	}