diff --git a/banking-client/src/main/java/ufrn/imd/controller/Controller.java b/banking-client/src/main/java/ufrn/imd/controller/Controller.java
index ab932a257b9079b16d646302917bf7b768d00eb4..b096e53ac2b72da6bd16bab300631399a7a479f8 100644
--- a/banking-client/src/main/java/ufrn/imd/controller/Controller.java
+++ b/banking-client/src/main/java/ufrn/imd/controller/Controller.java
@@ -9,5 +9,5 @@ import java.rmi.RemoteException;
 public interface Controller extends Remote {
     public void registerClient(Client client) throws RemoteException;
 
-    public ServerResponse getResponse(Client client) throws RemoteException;
+    public ServerResponse getResponse(Object client) throws RemoteException;
 }
diff --git a/banking-client/src/main/java/ufrn/imd/utils/MachineState.java b/banking-client/src/main/java/ufrn/imd/utils/MachineState.java
index b810c0cc1104fe4426a0079faab304ba9f2783e2..a955e56a2d02b24d76acdc477b54e93bdcea545f 100644
--- a/banking-client/src/main/java/ufrn/imd/utils/MachineState.java
+++ b/banking-client/src/main/java/ufrn/imd/utils/MachineState.java
@@ -4,6 +4,7 @@ import lombok.Data;
 import ufrn.imd.controller.Controller;
 import ufrn.imd.domain.Account;
 import ufrn.imd.domain.Client;
+import ufrn.imd.utils.message.DepositMessage;
 
 import java.net.MalformedURLException;
 import java.rmi.Naming;
@@ -68,13 +69,20 @@ public class MachineState {
         } else if(state.equals(DEPOSIT)) {
             String v = sc.nextLine();
             Client client = new Client(1);
+            DepositMessage depositMessage = new DepositMessage(client, Double.parseDouble(v));
             Controller server = (Controller) Naming.lookup(HOST_DEPOSIT_SERVICE);
-            ServerResponse response = server.getResponse(client);
+            ServerResponse response = server.getResponse(depositMessage);
             if(response.getStatus() == 200) {
                 System.out.println(
                         String.format(">>> Your balance is: %.2f", ((Account)response.getBody()).getBalance())
                 );
             }
+            try {
+                Thread.sleep(1000);
+            } catch (InterruptedException e) {
+                throw new RuntimeException(e);
+            }
+
         } else if(state.equals(BALANCE)) {
             Client client = new Client(1);
             Controller server = (Controller) Naming.lookup(HOST_BALANCE_SERVICE);
@@ -84,6 +92,12 @@ public class MachineState {
                         String.format(">>> Your balance is: %.2f", ((Account)response.getBody()).getBalance())
                 );
             }
+            try {
+                Thread.sleep(1000);
+            } catch (InterruptedException e) {
+                throw new RuntimeException(e);
+            }
+
         }
     }
 
diff --git a/banking-client/src/main/java/ufrn/imd/utils/message/DepositMessage.java b/banking-client/src/main/java/ufrn/imd/utils/message/DepositMessage.java
new file mode 100644
index 0000000000000000000000000000000000000000..4b6e3da72f55566ba318c15e0595d2329171c904
--- /dev/null
+++ b/banking-client/src/main/java/ufrn/imd/utils/message/DepositMessage.java
@@ -0,0 +1,17 @@
+package ufrn.imd.utils.message;
+
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import ufrn.imd.domain.Client;
+
+import java.io.Serializable;
+
+@Data
+@AllArgsConstructor
+public class DepositMessage implements Serializable {
+
+    private static final long serialVersionUID = 2L;
+
+    private Client client;
+    private Double value;
+}
diff --git a/banking-server/.idea/compiler.xml b/banking-server/.idea/compiler.xml
index 1e78cc9ce0775fa751b7c9ccd7da8294958c203e..0830c9341634c6202b41204c2e6eb85fb959b090 100644
--- a/banking-server/.idea/compiler.xml
+++ b/banking-server/.idea/compiler.xml
@@ -2,6 +2,7 @@
 <project version="4">
   <component name="CompilerConfiguration">
     <annotationProcessing>
+      <profile default="true" name="Default" enabled="true" />
       <profile name="Maven default annotation processors profile" enabled="true">
         <sourceOutputDir name="target/generated-sources/annotations" />
         <sourceTestOutputDir name="target/generated-test-sources/test-annotations" />
diff --git a/banking-server/src/main/java/ufrn/imd/controller/Controller.java b/banking-server/src/main/java/ufrn/imd/controller/Controller.java
index ab932a257b9079b16d646302917bf7b768d00eb4..d5be018d3c01b6e18b13aa9d9028f66bb795589d 100644
--- a/banking-server/src/main/java/ufrn/imd/controller/Controller.java
+++ b/banking-server/src/main/java/ufrn/imd/controller/Controller.java
@@ -7,7 +7,6 @@ import java.rmi.Remote;
 import java.rmi.RemoteException;
 
 public interface Controller extends Remote {
-    public void registerClient(Client client) throws RemoteException;
 
-    public ServerResponse getResponse(Client client) throws RemoteException;
+    public ServerResponse getResponse(Object client) throws RemoteException;
 }
diff --git a/banking-server/src/main/java/ufrn/imd/controller/impl/BalanceControllerImpl.java b/banking-server/src/main/java/ufrn/imd/controller/impl/BalanceControllerImpl.java
index 8ae43332ba961fda0f7a7dcf5396e189462d47c3..50d9cb87a9e624e039f790f7cad9bfdb09e97fb4 100644
--- a/banking-server/src/main/java/ufrn/imd/controller/impl/BalanceControllerImpl.java
+++ b/banking-server/src/main/java/ufrn/imd/controller/impl/BalanceControllerImpl.java
@@ -29,59 +29,13 @@ public class BalanceControllerImpl extends UnicastRemoteObject implements Contro
         Naming.bind(HOST_BALANCE_SERVICE, this);
         log.info("Starting Deposit service!");
         this.service = service;
-//        new Notify(service).start();
         log.info(String.format("Initializing server in %s", HOST_BALANCE_SERVICE));
 
     }
 
     @Override
-    public void registerClient(Client client) throws RemoteException {
-        clients.add(client);
-        log.info("new client registred");
-        log.info(String.format("total users: %d", clients.size()));
-    }
-
-    @Override
-    public ServerResponse getResponse(Client client) throws RemoteException {
+    public ServerResponse getResponse(Object obj) throws RemoteException {
+        Client client = (Client) obj;
         return this.service.balance(Optional.of(client));
     }
-
-
-    private class Notify extends Thread{
-
-        private final BalanceServiceImpl service;
-
-        public Notify(BalanceServiceImpl service) {
-            super();
-            this.service = service;
-        }
-        public void run() {
-
-            for(;;) {
-                if(clients.size() > 0) {
-
-                    log.info("notyfing the clients!");
-                    int i = 0;
-                    clients.stream().forEach(client -> {
-                        try {
-
-                            log.info(String.format("Clients waiting %d", clients.size()));
-                            this.service.balance(Optional.of(client));
-                            clients.remove();
-                            log.info(String.format("Clients waiting %d", clients.size()));
-                        } catch (RemoteException e) {
-                            e.printStackTrace();
-                        }
-                    });
-
-                    try {
-                        Thread.sleep(15 * 1000);
-                    } catch (InterruptedException e) {
-                        e.printStackTrace();
-                    }
-                }
-            }
-
-        }
-    }
 }
diff --git a/banking-server/src/main/java/ufrn/imd/controller/impl/DepositControllerImpl.java b/banking-server/src/main/java/ufrn/imd/controller/impl/DepositControllerImpl.java
index 179ed838cded8ecab6193c7badfafc0c10e9fc12..1e37f28ff725ffc585139f7bfe6f20e937c9c352 100644
--- a/banking-server/src/main/java/ufrn/imd/controller/impl/DepositControllerImpl.java
+++ b/banking-server/src/main/java/ufrn/imd/controller/impl/DepositControllerImpl.java
@@ -5,6 +5,7 @@ import ufrn.imd.controller.Controller;
 import ufrn.imd.domain.Client;
 import ufrn.imd.service.impl.DepositServiceImpl;
 import ufrn.imd.utils.ServerResponse;
+import ufrn.imd.utils.message.DepositMessage;
 
 import java.net.MalformedURLException;
 import java.rmi.AlreadyBoundException;
@@ -28,61 +29,15 @@ public class DepositControllerImpl extends UnicastRemoteObject implements Contro
         super();
         log.info("Starting Deposit service!");
 
-//        new Notify(service).start();
         log.info(String.format("Initializing server in %s", HOST_DEPOSIT_SERVICE));
-
         this.service = service;
         LocateRegistry.createRegistry(PORT_DEPOSIT_SERVICE);
         Naming.bind(HOST_DEPOSIT_SERVICE, this);
     }
 
-    @Override
-    public void registerClient(Client client) throws RemoteException {
-        clients.add(client);
-        log.info("new client registred");
-        log.info(String.format("total users: %d", clients.size()));
-    }
-
-    public ServerResponse getResponse(Client client) throws RemoteException {
-        return this.service.deposit(200.00, Optional.of(client));
+    public ServerResponse getResponse(Object obj) throws RemoteException {
+        DepositMessage depositMessage = (DepositMessage)obj;
+        return this.service.deposit(depositMessage.getValue(), Optional.of(depositMessage.getClient()));
     }
 
-
-    private class Notify extends Thread{
-
-        private final DepositServiceImpl service;
-
-        public Notify(DepositServiceImpl service) {
-            super();
-            this.service = service;
-        }
-        public void run() {
-
-            for(;;) {
-
-                if(clients.size() > 0) {
-
-                    log.info("notyfing the clients!");
-                    int i = 0;
-                    clients.stream().forEach(client -> {
-                        try {
-                            log.info(String.format("Clients waiting %d", clients.size()));
-                            ServerResponse deposit = this.service.deposit(200.00, Optional.of(client));
-                            serverResponses.add(deposit);
-                            log.info(String.format("Clients waiting %d", clients.size()));
-
-                        } catch (RemoteException e) {
-                            e.printStackTrace();
-                        }
-                    });
-                    try {
-                        Thread.sleep(15 * 1000);
-                    } catch (InterruptedException e) {
-                        e.printStackTrace();
-                    }
-                }
-            }
-
-        }
-    }
 }
diff --git a/banking-server/src/main/java/ufrn/imd/utils/message/DepositMessage.java b/banking-server/src/main/java/ufrn/imd/utils/message/DepositMessage.java
new file mode 100644
index 0000000000000000000000000000000000000000..2badcd3f628f1fceaf86549d8fe1b286b4738665
--- /dev/null
+++ b/banking-server/src/main/java/ufrn/imd/utils/message/DepositMessage.java
@@ -0,0 +1,16 @@
+package ufrn.imd.utils.message;
+
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import ufrn.imd.domain.Client;
+
+import java.io.Serializable;
+
+@Data
+@AllArgsConstructor
+public class DepositMessage implements Serializable {
+    private static final long serialVersionUID = 2L;
+
+    private Client client;
+    private Double value;
+}
diff --git a/banking-server/target/classes/ufrn/imd/controller/Controller.class b/banking-server/target/classes/ufrn/imd/controller/Controller.class
index 9f65cc4b43514c694d42fba6e72344725bc510de..d963fb57c51b2717ad5df0b7a9c8b917478a9e46 100644
Binary files a/banking-server/target/classes/ufrn/imd/controller/Controller.class and b/banking-server/target/classes/ufrn/imd/controller/Controller.class differ
diff --git a/banking-server/target/classes/ufrn/imd/controller/impl/BalanceControllerImpl$Notify.class b/banking-server/target/classes/ufrn/imd/controller/impl/BalanceControllerImpl$Notify.class
deleted file mode 100644
index 05c9dcdc8d1772381efcdb551579129b88ee152d..0000000000000000000000000000000000000000
Binary files a/banking-server/target/classes/ufrn/imd/controller/impl/BalanceControllerImpl$Notify.class and /dev/null differ
diff --git a/banking-server/target/classes/ufrn/imd/controller/impl/BalanceControllerImpl.class b/banking-server/target/classes/ufrn/imd/controller/impl/BalanceControllerImpl.class
index fabf3e6087f27cc0d99ba3f18efed1ab04119893..e990c821bbca67e3753e9d7b7726bf02f8827d69 100644
Binary files a/banking-server/target/classes/ufrn/imd/controller/impl/BalanceControllerImpl.class and b/banking-server/target/classes/ufrn/imd/controller/impl/BalanceControllerImpl.class differ
diff --git a/banking-server/target/classes/ufrn/imd/controller/impl/DepositControllerImpl$Notify.class b/banking-server/target/classes/ufrn/imd/controller/impl/DepositControllerImpl$Notify.class
deleted file mode 100644
index 1e65ef3171eb3e0c93d93fa451f58c6ac729a57c..0000000000000000000000000000000000000000
Binary files a/banking-server/target/classes/ufrn/imd/controller/impl/DepositControllerImpl$Notify.class and /dev/null differ
diff --git a/banking-server/target/classes/ufrn/imd/controller/impl/DepositControllerImpl.class b/banking-server/target/classes/ufrn/imd/controller/impl/DepositControllerImpl.class
index ebfe39d9843762fa90cc9a12183aefdcd3f8aded..78b16605a3148faa5588123ef88a11f98ff3a3ce 100644
Binary files a/banking-server/target/classes/ufrn/imd/controller/impl/DepositControllerImpl.class and b/banking-server/target/classes/ufrn/imd/controller/impl/DepositControllerImpl.class differ