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 dc21b11936e60d061398e839a9db450efbc06a09..753a9218c3dcfec0df4043423dad5ebc0b85c396 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
@@ -3,8 +3,6 @@ package ufrn.imd.controller.impl;
 import ufrn.imd.controller.Controller;
 import ufrn.imd.domain.Client;
 import ufrn.imd.service.BalanceService;
-import ufrn.imd.service.impl.BalanceServiceImpl;
-import ufrn.imd.utils.Log;
 
 import java.net.MalformedURLException;
 import java.rmi.AlreadyBoundException;
@@ -19,18 +17,18 @@ import java.util.Optional;
 import static ufrn.imd.utils.NameSpace.HOST_BALANCE_SERVICE;
 import static ufrn.imd.utils.NameSpace.PORT_BALANCE_SERVICE;
 
+@lombok.extern.java.Log
 public class BalanceControllerImpl extends UnicastRemoteObject implements Controller {
 
     private volatile List<Client> clients = new ArrayList<>();
 
     public BalanceControllerImpl(BalanceService service) throws RemoteException, MalformedURLException, AlreadyBoundException {
         super();
-        Log.info(BalanceServiceImpl.class, "Starting Deposit service!");
+        log.info("Starting Deposit service!");
 
         new Notify(service).start();
 
-        Log.info(BalanceServiceImpl.class,
-                String.format("Initializing server in %s", HOST_BALANCE_SERVICE));
+        log.info(String.format("Initializing server in %s", HOST_BALANCE_SERVICE));
 
         LocateRegistry.createRegistry(PORT_BALANCE_SERVICE);
 
@@ -40,8 +38,8 @@ public class BalanceControllerImpl extends UnicastRemoteObject implements Contro
     @Override
     public void registerClient(Client client) throws RemoteException {
         clients.add(client);
-        Log.info(BalanceService.class, "new client registred");
-        Log.info(BalanceService.class, String.format("total users: %d", clients.size()));
+        log.info("new client registred");
+        log.info(String.format("total users: %d", clients.size()));
     }
 
 
@@ -60,10 +58,7 @@ public class BalanceControllerImpl extends UnicastRemoteObject implements Contro
             for(;;) {
                 if(clients.size() > 0) {
 
-                    Log.info(
-                            BalanceService.class,
-                            "notyfing the clients!"
-                    );
+                    log.info("notyfing the clients!");
                     int i = 0;
                     for (Client client : clients) {
 
@@ -85,7 +80,7 @@ public class BalanceControllerImpl extends UnicastRemoteObject implements Contro
                     } catch (InterruptedException e) {
                         throw new RuntimeException(e);
                     }
-                    Log.info(BalanceService.class, "No there's clients!");
+                    log.info("No there's clients!");
                 }
 
             }
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 b84139bb0adcd15f13adc87041a4f413fdf22395..958ac87bc7db216602387ecf2ca281dc5c147883 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
@@ -1,9 +1,9 @@
 package ufrn.imd.controller.impl;
 
+import lombok.extern.java.Log;
 import ufrn.imd.controller.Controller;
 import ufrn.imd.domain.Client;
 import ufrn.imd.service.DepositService;
-import ufrn.imd.utils.Log;
 
 import java.net.MalformedURLException;
 import java.rmi.AlreadyBoundException;
@@ -18,16 +18,16 @@ import java.util.Optional;
 import static ufrn.imd.utils.NameSpace.HOST_DEPOSIT_SERVICE;
 import static ufrn.imd.utils.NameSpace.PORT_DEPOSIT_SERVICE;
 
+@Log
 public class DepositControllerImpl extends UnicastRemoteObject implements Controller {
 
     private volatile List<Client> clients = new ArrayList<>();
     public DepositControllerImpl(DepositService service) throws RemoteException, MalformedURLException, AlreadyBoundException {
         super();
-        Log.info(DepositControllerImpl.class, "Starting Deposit service!");
+        log.info("Starting Deposit service!");
 
         new Notify(service).start();
-        Log.info(DepositControllerImpl.class,
-                String.format("Initializing server in %s", HOST_DEPOSIT_SERVICE));
+        log.info(String.format("Initializing server in %s", HOST_DEPOSIT_SERVICE));
 
         LocateRegistry.createRegistry(PORT_DEPOSIT_SERVICE);
 
@@ -37,8 +37,8 @@ public class DepositControllerImpl extends UnicastRemoteObject implements Contro
     @Override
     public void registerClient(Client client) throws RemoteException {
         clients.add(client);
-        Log.info(DepositControllerImpl.class, "new client registred");
-        Log.info(DepositControllerImpl.class, String.format("total users: %d", clients.size()));
+        log.info("new client registred");
+        log.info(String.format("total users: %d", clients.size()));
     }
 
 
@@ -58,10 +58,7 @@ public class DepositControllerImpl extends UnicastRemoteObject implements Contro
 
                 if(clients.size() > 0) {
 
-                    Log.info(
-                            DepositControllerImpl.class,
-                            "notyfing the clients!"
-                    );
+                    log.info("notyfing the clients!");
                     int i = 0;
                     for (Client client : clients) {
 
@@ -83,7 +80,7 @@ public class DepositControllerImpl extends UnicastRemoteObject implements Contro
                     } catch (InterruptedException e) {
                         throw new RuntimeException(e);
                     }
-                    Log.info(DepositControllerImpl.class, "No there's clients!");
+                    log.info("No there's clients!");
 
 
                 }
diff --git a/banking-server/src/main/java/ufrn/imd/service/impl/BalanceServiceImpl.java b/banking-server/src/main/java/ufrn/imd/service/impl/BalanceServiceImpl.java
index 85bb341088b94f1575ef1d3ff09d42828a4f8a05..8ae835eee3fced34f9c22d0d743c232bc76dafd8 100644
--- a/banking-server/src/main/java/ufrn/imd/service/impl/BalanceServiceImpl.java
+++ b/banking-server/src/main/java/ufrn/imd/service/impl/BalanceServiceImpl.java
@@ -1,22 +1,20 @@
 package ufrn.imd.service.impl;
 
+import lombok.extern.java.Log;
 import ufrn.imd.domain.Account;
 import ufrn.imd.service.BalanceService;
-import ufrn.imd.utils.Log;
 
 import java.rmi.RemoteException;
 import java.util.Optional;
 
+@Log
 public class BalanceServiceImpl implements BalanceService {
 
 
     @Override
     public void balance(Optional<Account> accOP) throws RemoteException {
         Account account = accOP.orElseThrow(() -> new RuntimeException("Invalid account"));
-        Log.info(
-                BalanceServiceImpl.class,
-                String.format("Account Balance: R$ %f", account.getBalance())
-        );
+        log.info(String.format("Account Balance: R$ %f", account.getBalance()));
 
     }
 }
diff --git a/banking-server/src/main/java/ufrn/imd/service/impl/DepositServiceImpl.java b/banking-server/src/main/java/ufrn/imd/service/impl/DepositServiceImpl.java
index 1909f69583722458b1c6a10029c86bab6581eb50..a371112b4b282f9c336c246db214be5ede5e01d8 100644
--- a/banking-server/src/main/java/ufrn/imd/service/impl/DepositServiceImpl.java
+++ b/banking-server/src/main/java/ufrn/imd/service/impl/DepositServiceImpl.java
@@ -1,12 +1,13 @@
 package ufrn.imd.service.impl;
 
+import lombok.extern.java.Log;
 import ufrn.imd.domain.Account;
 import ufrn.imd.service.DepositService;
-import ufrn.imd.utils.Log;
 
 import java.rmi.RemoteException;
 import java.util.Optional;
 
+@Log
 public class DepositServiceImpl implements DepositService {
 
     public DepositServiceImpl() {
@@ -17,7 +18,7 @@ public class DepositServiceImpl implements DepositService {
         Account account = acOp.orElseThrow(() -> new RuntimeException("Null User!"));
         if(account.getBalance() < value) throw new RuntimeException("There's no money!");
         account.setBalance(account.getBalance() - value);
-        Log.info(DepositServiceImpl.class, "deposit");
+        log.info("deposit");
     }
 
 }
diff --git a/banking-server/src/main/java/ufrn/imd/utils/Log.java b/banking-server/src/main/java/ufrn/imd/utils/Log.java
deleted file mode 100644
index 38d3f87c29c5bba875697400c9d9fecad5cbe99a..0000000000000000000000000000000000000000
--- a/banking-server/src/main/java/ufrn/imd/utils/Log.java
+++ /dev/null
@@ -1,10 +0,0 @@
-package ufrn.imd.utils;
-
-public class Log {
-
-    public static void info(Class path, String text) {
-        System.out.println(
-                String.format("[LOG] %s - %s", path , text)
-        );
-    }
-}
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
new file mode 100644
index 0000000000000000000000000000000000000000..7f067992c8a00c6fd8c3203ad80e171f7a42fb6b
Binary files /dev/null and b/banking-server/target/classes/ufrn/imd/controller/impl/BalanceControllerImpl$Notify.class 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
new file mode 100644
index 0000000000000000000000000000000000000000..d91152883436e27a0f69fc0c37cc6ebde16db26b
Binary files /dev/null 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
new file mode 100644
index 0000000000000000000000000000000000000000..9697b9b922e597e1104c36d785b29568877a9002
Binary files /dev/null and b/banking-server/target/classes/ufrn/imd/controller/impl/DepositControllerImpl$Notify.class 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
new file mode 100644
index 0000000000000000000000000000000000000000..c429275f5abb1141d6e6335ce6730b9f9c18c9d7
Binary files /dev/null and b/banking-server/target/classes/ufrn/imd/controller/impl/DepositControllerImpl.class differ
diff --git a/banking-server/target/classes/ufrn/imd/domain/Account.class b/banking-server/target/classes/ufrn/imd/domain/Account.class
index a4b43e01d80f1a91b78f2901d9f2ba08f07e460b..972ceb6f5609d6c8fa4922af65a4b5c244493aea 100644
Binary files a/banking-server/target/classes/ufrn/imd/domain/Account.class and b/banking-server/target/classes/ufrn/imd/domain/Account.class differ
diff --git a/banking-server/target/classes/ufrn/imd/domain/Client.class b/banking-server/target/classes/ufrn/imd/domain/Client.class
index bb9cd9b4e1c8f13d9f1421b515a67c9eb8a0a2d7..38d7a3658a88a4078ee7e0545a2e76bfe87708c6 100644
Binary files a/banking-server/target/classes/ufrn/imd/domain/Client.class and b/banking-server/target/classes/ufrn/imd/domain/Client.class differ
diff --git a/banking-server/target/classes/ufrn/imd/repository/Repository.class b/banking-server/target/classes/ufrn/imd/repository/Repository.class
new file mode 100644
index 0000000000000000000000000000000000000000..edf96faf080b1cb13de2680e95de0075fff887fd
Binary files /dev/null and b/banking-server/target/classes/ufrn/imd/repository/Repository.class differ
diff --git a/banking-server/target/classes/ufrn/imd/repository/impl/ClientRepository.class b/banking-server/target/classes/ufrn/imd/repository/impl/ClientRepository.class
new file mode 100644
index 0000000000000000000000000000000000000000..d5200a1291f7edff2158f8e3b6c0276cee9f31ea
Binary files /dev/null and b/banking-server/target/classes/ufrn/imd/repository/impl/ClientRepository.class differ
diff --git a/banking-server/target/classes/ufrn/imd/service/BalanceService.class b/banking-server/target/classes/ufrn/imd/service/BalanceService.class
new file mode 100644
index 0000000000000000000000000000000000000000..a3fa528b1ec10f571b2fa396f9a310eddca7e4cc
Binary files /dev/null and b/banking-server/target/classes/ufrn/imd/service/BalanceService.class differ
diff --git a/banking-server/target/classes/ufrn/imd/service/DepositService.class b/banking-server/target/classes/ufrn/imd/service/DepositService.class
new file mode 100644
index 0000000000000000000000000000000000000000..e417806b1752cd381b3bce46f34ff2a4c8e3b3d3
Binary files /dev/null and b/banking-server/target/classes/ufrn/imd/service/DepositService.class differ
diff --git a/banking-server/target/classes/ufrn/imd/service/WidthawService.class b/banking-server/target/classes/ufrn/imd/service/WidthawService.class
new file mode 100644
index 0000000000000000000000000000000000000000..87f4370c406e13dec8e6ee9115f250d18054b342
Binary files /dev/null and b/banking-server/target/classes/ufrn/imd/service/WidthawService.class differ
diff --git a/banking-server/target/classes/ufrn/imd/service/impl/BalanceServiceImpl.class b/banking-server/target/classes/ufrn/imd/service/impl/BalanceServiceImpl.class
new file mode 100644
index 0000000000000000000000000000000000000000..a5e1a4d127fd1ae794f2509bcd0e3fed486f2dbe
Binary files /dev/null and b/banking-server/target/classes/ufrn/imd/service/impl/BalanceServiceImpl.class differ
diff --git a/banking-server/target/classes/ufrn/imd/service/impl/DepositServiceImpl.class b/banking-server/target/classes/ufrn/imd/service/impl/DepositServiceImpl.class
new file mode 100644
index 0000000000000000000000000000000000000000..8a7bee88adf7fc8e715e5f685cc3ca200269eec5
Binary files /dev/null and b/banking-server/target/classes/ufrn/imd/service/impl/DepositServiceImpl.class differ