diff --git a/src/client/Client.java b/src/client/Client.java
index 7845896230e98288a226cc74fda55ced25f40d03..e1ad43a3e9ce814ea328377f57757a4d4158c592 100644
--- a/src/client/Client.java
+++ b/src/client/Client.java
@@ -6,10 +6,17 @@
 package sisterclient;
 
 import java.io.IOException;
+import java.io.InputStream;
+import java.io.ObjectInputStream;
+import java.io.ObjectOutputStream;
+import java.io.OutputStream;
 import java.net.DatagramPacket;
 import java.net.DatagramSocket;
 import java.net.InetAddress;
+import java.net.InetSocketAddress;
+import java.net.Socket;
 import java.net.SocketException;
+
 import java.net.SocketTimeoutException;
 import java.net.UnknownHostException;
 import org.json.JSONObject;
@@ -29,6 +36,7 @@ public class Client {
     private String ipAddress; //ipsendiri
     private Random random;
     private int previouskpu;
+    private Socket clientSocket;
     
     public Client(int _playerid, int _port){
         playerID = _playerid;
@@ -44,81 +52,6 @@ public class Client {
     public void setPort(int _port){
         port = _port;
     }
-    public void prepareProposal() throws SocketException, UnknownHostException, IOException{
-        byte[] sendData = new byte[1024];
-        byte[] receiveData = new byte[1024];  
-        if(isProposer){
-            DatagramSocket proposerSocket = new DatagramSocket();
-            InetAddress IPAddress = InetAddress.getByName("localhost");
-            String message  = "{\"method\":\"prepare_proposal\",\"proposal_id\": ["+proposalNum+","+playerID+"]}";
-            sendData = message.getBytes();
-            DatagramPacket sendPacket = new DatagramPacket(sendData, sendData.length, IPAddress, port);
-            double rand = random.nextDouble();
-            if (rand < 0.85) {
-                proposerSocket.send(sendPacket);
-            }
-            //proposerSocket.setSoTimeout(timeout);
-            DatagramPacket receivePacket = new DatagramPacket(receiveData, receiveData.length);
-            proposerSocket.receive(receivePacket);
-            String receivedResponse = new String(receivePacket.getData());
-            System.out.println("FROM SERVER:" + receivedResponse);
-            proposerSocket.close();
-            boolean waiting = true;
-            /*while(waiting){
-                try{
-                    DatagramPacket receivePacket = new DatagramPacket(receiveData, receiveData.length);
-                    proposerSocket.receive(receivePacket);
-                    receivedResponse = new String(receivePacket.getData());
-                    System.out.println("FROM SERVER:" + receivedResponse);
-                    waiting = false;
-                    proposerSocket.close()
-                }catch(SocketTimeoutException e){
-                    receivedResponse = "{\"status\": \"error\",\"description\": \"No Response\"}";
-                    System.out.println("Timeout " + e +receivedResponse);
-                    proposerSocket.close();
-                }
-            }*/
-        }else{
-            String message = null;
-            String respond = null;
-            DatagramSocket serverSocket = new DatagramSocket(port);
-            DatagramPacket receivePacket = new DatagramPacket(receiveData, receiveData.length);
-            serverSocket.setSoTimeout(timeout+10000);
-            JSONObject tes = null;
-            InetAddress IPAddress=null;
-            boolean getmessage = false;
-            try{
-                serverSocket.receive(receivePacket);
-                message = new String( receivePacket.getData());
-                IPAddress = receivePacket.getAddress();
-                System.out.println("RECEIVED: " + message);
-                tes = new JSONObject(message);
-                getmessage= true;
-                if (getmessage){
-                    if(tes.get("method").toString().compareTo("prepare_proposal")==0){
-                        System.out.println("aawawa");
-                        Scanner input = new Scanner(System.in);
-                        int in = Integer.parseInt(input.next()) ;
-                            switch(in){
-                                case 1 : respond = "{\"status\": \"ok\",\"description\": \"accepted\",\"previous_accepted\":"+previouskpu+"}"; break;
-                                case 2 : respond = "{\"status\": \"fail\",\"description\": \"rejected\"}"; break;
-                            }
-                        }
-                        //int port = receivePacket.getPort();
-                        System.out.println("aawawa");
-                        sendData = respond.getBytes();
-                        System.out.println(respond);
-                        DatagramPacket sendPacket = new DatagramPacket(sendData, sendData.length, IPAddress, port);
-                        serverSocket.send(sendPacket);
-                        System.out.println(IPAddress.toString());
-                        System.out.println(port);
-                }
-            }catch(SocketTimeoutException e){
-                respond = "{\"status\": \"fail\",\"description\": \"rejected\"}";
-                System.out.println("Timeout " + e +respond);
-            }
-        }
-    }
     void sendMessageToClient(String _addr, int port, String message) throws SocketException, UnknownHostException, IOException{
         DatagramSocket senderSocket = new DatagramSocket();
         InetAddress IPAddress = InetAddress.getByName(_addr);
@@ -134,6 +67,7 @@ public class Client {
     void receiveMessageFromClient(String _addr, int port) throws SocketException, IOException{
         byte[] receiveData = new byte[1024];  
         DatagramSocket receiverSocket = new DatagramSocket(port);
+        receiverSocket.setReuseAddress(true);
         InetAddress IPAddress = InetAddress.getByName(_addr);
         DatagramPacket receivePacket = new DatagramPacket(receiveData, receiveData.length);
         receiverSocket.receive(receivePacket);
@@ -141,5 +75,64 @@ public class Client {
         System.out.println("FROM SERVER:" + response);
         receiverSocket.close(); 
     }
-    
+    void connectToServer(String _ipAddr, int _port ) throws IOException{
+        clientSocket = new Socket(_ipAddr, _port);
+    }
+    void sendMessageToServer(Object _objIn) throws IOException{
+        OutputStream out = clientSocket.getOutputStream();
+        ObjectOutputStream oOut = new ObjectOutputStream(out);
+        oOut.writeObject(_objIn);
+    }
+    void receiveMessageFromServer() throws IOException, ClassNotFoundException{
+        Object oTemp = null;
+        InputStream in = clientSocket.getInputStream();
+        ObjectInputStream oIn = new ObjectInputStream(in);
+        oTemp = (Object) oIn.readObject();
+        if(oTemp instanceof JSONObject){
+            System.out.println(((JSONObject)oTemp).toString());
+        }else{
+            System.out.println("error/fail");
+        }
+    }
+
+    public int getPlayerID() {
+        return playerID;
+    }
+
+    public void setPlayerID(int playerID) {
+        this.playerID = playerID;
+    }
+
+    public int getProposalNum() {
+        return proposalNum;
+    }
+
+    public void setProposalNum(int proposalNum) {
+        this.proposalNum = proposalNum;
+    }
+
+    public String getIpAddress() {
+        return ipAddress;
+    }
+
+    public void setIpAddress(String ipAddress) {
+        this.ipAddress = ipAddress;
+    }
+
+
+    public int getPreviouskpu() {
+        return previouskpu;
+    }
+
+    public void setPreviouskpu(int previouskpu) {
+        this.previouskpu = previouskpu;
+    }
+
+    public Socket getClientSocket() {
+        return clientSocket;
+    }
+
+    public void setClientSocket(Socket clientSocket) {
+        this.clientSocket = clientSocket;
+    }
 }