diff --git a/TDD/biblioteca_test b/TDD/biblioteca_test
deleted file mode 100755
index 5fa6b4a1ff76cde638fcf9cacb11eedc32b9228b..0000000000000000000000000000000000000000
Binary files a/TDD/biblioteca_test and /dev/null differ
diff --git a/biblioteca b/biblioteca
deleted file mode 100755
index 3621ce5dc50facf4c977390de080e6a4186d24f8..0000000000000000000000000000000000000000
Binary files a/biblioteca and /dev/null differ
diff --git a/sources/ControladorUsuarios.cpp b/sources/ControladorUsuarios.cpp
index 44d95f19db611d2f81b3cabd372cc8fd42786b73..94f9be65583ef738f5c251ba1245c3450b067c86 100644
--- a/sources/ControladorUsuarios.cpp
+++ b/sources/ControladorUsuarios.cpp
@@ -29,11 +29,11 @@ void ControladorUsuarios::mostrarDetalhes() const {
 bool ControladorUsuarios::adicionarUsuario(string nome, string CPF, string endereco, 
     string telefone, string email){
   // Check if the user does not exist
-  auto it = find_if(this->usuarios.begin(), this->usuarios.end(), [CPF](Usuario& u) {
+  auto user_it = find_if(this->usuarios.begin(), this->usuarios.end(), [CPF](Usuario& u) {
       return u.getCPF() == CPF;
-    });
+      });
 
-  if (it != this->usuarios.end()){
+  if (user_it != this->usuarios.end()){
     cerr << "> Erro: Usuario com esse CPF já existe, ignorando inserção" << endl;
     return false;
   }
@@ -48,19 +48,19 @@ bool ControladorUsuarios::adicionarUsuario(string nome, string CPF, string ender
 chrono::year_month_day ControladorUsuarios::registrarEmprestimo(string CPF, shared_ptr<DescricaoObra> descricao){
 
   // Search for user
-  auto it = find_if(usuarios.begin(), usuarios.end(), [CPF](Usuario& u) {
+  auto user_it = find_if(usuarios.begin(), usuarios.end(), [CPF](Usuario& u) {
       return u.getCPF() == CPF;
-    });
+      });
 
-  if (it == usuarios.end()) {
+  if (user_it == usuarios.end()) {
     cerr << "> Erro: Usuario não encontrado" << endl;
     return chrono::year_month_day{chrono::year{0}, chrono::month{0}, chrono::day{0}};
   }
 
-  chrono::year_month_day dataDevolucao = it->emprestar(descricao);
-  if (0 == int(dataDevolucao.year()) && 0 == unsigned(dataDevolucao.month()) && 0 == unsigned(dataDevolucao.day())) {
-    cerr << "> Erro: Falha ao realizar um emprestimo" << endl;
-  }
+  chrono::year_month_day dataDevolucao = user_it->emprestar(descricao);
+  //if (int(dataDevolucao.year()) == 0 && unsigned(dataDevolucao.month()) == 0 && unsigned(dataDevolucao.day()) == 0) {
+  //  cerr << "> Erro: Falha ao realizar um emprestimo" << endl;
+  //}
 
   return dataDevolucao;
 }
@@ -69,16 +69,16 @@ chrono::year_month_day ControladorUsuarios::registrarEmprestimo(string CPF, shar
 int ControladorUsuarios::retornarEmprestimo(string CPF, shared_ptr<DescricaoObra> descricao){
 
   // Search for user
-  auto it = find_if(usuarios.begin(), usuarios.end(), [CPF](Usuario& u) {
+  auto user_it = find_if(usuarios.begin(), usuarios.end(), [CPF](Usuario& u) {
       return u.getCPF() == CPF;
-    });
+      });
 
-  if (it == usuarios.end()) {
+  if (user_it == usuarios.end()) {
     cerr << "> Erro: Usuario não encontrado" << endl;
     return -1;
   }
 
-  if (!it->devolver(descricao)){
+  if (!user_it->devolver(descricao)){
     cerr << "> Erro: Falha ao realizar a devolução" << endl;
     return -1;
   }
@@ -90,30 +90,30 @@ int ControladorUsuarios::retornarEmprestimo(string CPF, shared_ptr<DescricaoObra
 int ControladorUsuarios::recuperarMultas(string CPF){
 
   // Search for user
-  auto it = find_if(usuarios.begin(), usuarios.end(), [CPF](Usuario& u) {
+  auto user_it = find_if(usuarios.begin(), usuarios.end(), [CPF](Usuario& u) {
       return u.getCPF() == CPF;
-    });
+      });
 
-  if (it == usuarios.end()) {
+  if (user_it == usuarios.end()) {
     cerr << "> Erro: Usuario não encontrado" << endl;
-    return 0;
+    return -1;
   }
 
-  return it->getMulta();
+  return user_it->getMulta();
 }
 
 
 bool ControladorUsuarios::registrarMultaPaga(string CPF, int valor){
 
   // Search for user
-  auto it = find_if(usuarios.begin(), usuarios.end(), [CPF](Usuario& u) {
+  auto user_it = find_if(usuarios.begin(), usuarios.end(), [CPF](Usuario& u) {
       return u.getCPF() == CPF;
-    });
+      });
 
-  if (it == usuarios.end()) {
+  if (user_it == usuarios.end()) {
     cerr << "> Erro: Usuario não encontrado" << endl;
     return false;
   }
 
-  return it->pagarMulta(valor);
+  return user_it->pagarMulta(valor);
 }
diff --git a/sources/Usuario.cpp b/sources/Usuario.cpp
index 13569d11638f3305916d716a4ef0fe93c4076c85..bedb1db400fc31cd5daa93c077dd93e5ccf7e457 100644
--- a/sources/Usuario.cpp
+++ b/sources/Usuario.cpp
@@ -30,7 +30,7 @@ chrono::year_month_day Usuario::emprestar(shared_ptr<DescricaoObra> descricao){
 
   // Check number of Borrowed works
   if (this->emprestimos->size() >= 3) {
-    cerr << "> Erro: Usuario já possui três empresimos! Ignorando operação" << endl;
+    cerr << "> Erro: Usuario já possui três emprestimos! Ignorando operação" << endl;
     return chrono::year_month_day{chrono::year{0}, chrono::month{0}, chrono::day{0}};
   }
 
diff --git a/sources/main.cpp b/sources/main.cpp
index 0b5ae75f0da0c49cf0d116197637a7949701a119..973e49d519ac14bb608a999af9ab092f8814e69b 100644
--- a/sources/main.cpp
+++ b/sources/main.cpp
@@ -2,6 +2,7 @@
 #include <string>
 #include <limits>
 #include <memory>
+#include <chrono>
 
 #include "Biblioteca.hpp"
 #include "Livro.hpp"
@@ -76,7 +77,6 @@ int main(){
   ControladorUsuarios contUsuarios = bib.getContUsuarios();
   contUsuarios.adicionarUsuario("Muriki", "12345", "Casa", "9999", "murikigy@gmail.com");
   contUsuarios.adicionarUsuario("Nico", "54321", "Apartamento", "8888", "nico@gmail.com");
-  contUsuarios.adicionarUsuario("Marcus", "12345", "Casa", "9988", "marcus@gmail.com");
 
   // Cria Obras
   ControladorObras contObras = bib.getContObras();
@@ -89,7 +89,7 @@ int main(){
   cout << "> Criando Livros" << endl;
   contObras.adicionarObra(make_shared<Livro>("C++ Programming", 2022, "John Doe", "Tech Books"));
 
-  contObras.mostrarDetalhes();
+  //contObras.mostrarDetalhes();
 
   // Interation Loop
   int option = START;
@@ -107,11 +107,12 @@ int main(){
 
     switch (option) {
       case ADDUSER:
-        cout << "Entre com o nome: ";       cin >> nome;
-        cout << "Entre com o CPF: ";        cin >> userCPF;
-        cout << "Entre com o endereco: ";   cin >> endereco;
-        cout << "Entre com o telefone: ";   cin >> telefone;
-        cout << "Entre com o email: ";      cin >> email;
+        cin.ignore();
+        cout << "Entre com o nome: ";             getline(cin, nome);
+        cout << "Entre com o CPF: ";              cin >> userCPF; cin.ignore();
+        cout << "Entre com o endereco: ";         getline(cin, endereco);
+        cout << "Entre com o telefone: ";         cin >> telefone;
+        cout << "Entre com o email: ";            cin >> email;
         if (contUsuarios.adicionarUsuario(nome, userCPF, endereco, telefone, email))
           cout << "> Usuario adicionado com sucesso!" << endl;
         break;
@@ -125,7 +126,8 @@ int main(){
         if (valor > 0) {
           cout << "\nUsuario: " << userCPF << endl;
           cout << "Valor a pagar: " << valor << endl;
-        } else { cout << "> Aviso: Usuario não possui multas" << endl; }
+        } else if (valor == 0) { cout << "> Aviso: Usuario não possui multas" << endl; }
+        else { cout << "> Erro: Usuario não encontrado" << endl; }
         break;
 
       case PAYFEES:
@@ -137,18 +139,20 @@ int main(){
       case ADDWORK:
         cout << "Entre com o tipo da obra (periodico|livro): ";   cin >> tipoObra;  cin.ignore();
         if (tipoObra == "periodico") {
-          cout << "Entre com o titulo: ";     getline(cin, titulo);
-          cout << "Entre com o ano: ";        cin >> ano;
-          cout << "Entre com o volume: ";     cin >> volume;
-          cout << "Entre com o mês: ";        cin >> mes;
+          cout << "Entre com o titulo: ";         getline(cin, titulo);
+          cout << "Entre com o ano: ";            cin >> ano;
+          cout << "Entre com o volume: ";         cin >> volume;
+          cout << "Entre com o mês: ";            cin >> mes;
           contObras.adicionarObra(make_shared<Periodico>(titulo, ano, volume, mes));
+          cout << "> Obra adicionada!" << endl;
         } else if (tipoObra == "livro") {
-          cout << "Entre com o titulo: ";     getline(cin, titulo);
-          cout << "Entre com o ano: ";        cin >> ano; cin.ignore();
-          cout << "Entre com o autor: ";      getline(cin, autor);
-          cout << "Entre com o editora: ";    getline(cin, editora);
+          cout << "Entre com o titulo: ";         getline(cin, titulo);
+          cout << "Entre com o ano: ";            cin >> ano; cin.ignore();
+          cout << "Entre com o autor: ";          getline(cin, autor);
+          cout << "Entre com o editora: ";        getline(cin, editora);
           contObras.adicionarObra(make_shared<Livro>(titulo, ano, autor, editora));
-        } else { cout << "Erro: Tipo não recinhecido! Ignorando operação" << endl; }
+          cout << "> Obra adicionada!" << endl;
+        } else { cout << "Erro: Tipo não reconhecido! Ignorando operação" << endl; }
         break;
 
       case LISTWORKS: contObras.mostrarDetalhes();
@@ -167,36 +171,47 @@ int main(){
         break;
 
       case BORROWWORK:
+        cout << "Entre com o CPF do usuário: ";   cin >> userCPF;
         cout << "Entre com o tipo da obra (periodico|livro): ";   cin >> tipoObra; cin.ignore();
         if (tipoObra == "periodico") {
-          cout << "Entre com o titulo: ";     getline(cin, titulo); 
-          cout << "Entre com o ano: ";        cin >> ano;           
-          cout << "Entre com o volume: ";     cin >> volume;        
-          cout << "Entre com o mês: ";        cin >> mes;           
-          contObras.solicitarEmprestimo(make_shared<Periodico>(titulo, ano, volume, mes));
+          cout << "Entre com o titulo: ";         getline(cin, titulo); 
+          cout << "Entre com o ano: ";            cin >> ano;           
+          cout << "Entre com o volume: ";         cin >> volume;        
+          cout << "Entre com o mês: ";            cin >> mes;           
+          chrono::year_month_day devolucao = contUsuarios.registrarEmprestimo(userCPF, make_shared<Periodico>(titulo, ano, volume, mes));
+          if (int(devolucao.year()) == 0 && 
+              unsigned(devolucao.month()) == 0 && 
+              unsigned(devolucao.day()) == 0) {
+            cerr << "> Erro: Falha ao realizar um emprestimo" << endl;
+          }
         } else if (tipoObra == "livro") {
-          cout << "Entre com o titulo: ";     getline(cin, titulo);     
-          cout << "Entre com o ano: ";        cin >> ano; cin.ignore();              
-          cout << "Entre com o autor: ";      getline(cin, autor);      
-          cout << "Entre com o editora: ";    getline(cin, editora);    
-          contObras.solicitarEmprestimo(make_shared<Livro>(titulo, ano, autor, editora));
+          cout << "Entre com o titulo: ";         getline(cin, titulo);     
+          cout << "Entre com o ano: ";            cin >> ano; cin.ignore();              
+          cout << "Entre com o autor: ";          getline(cin, autor);      
+          cout << "Entre com o editora: ";        getline(cin, editora);    
+          chrono::year_month_day devolucao = contUsuarios.registrarEmprestimo(userCPF, make_shared<Livro>(titulo, ano, autor, editora));
+          if (int(devolucao.year()) == 0 && 
+              unsigned(devolucao.month()) == 0 && 
+              unsigned(devolucao.day()) == 0) {
+            cerr << "> Erro: Falha ao realizar um emprestimo" << endl;
+          }
         } else { cout << "Erro: Tipo não reconhecido! Ignorando operação" << endl; }
         break;
 
       case RETURNWORK:
         cout << "Entre com o tipo da obra (periodico|livro): ";   cin >> tipoObra; cin.ignore();
         if (tipoObra == "periodico") {
-          cout << "Entre com o titulo: ";     getline(cin, titulo);  
-          cout << "Entre com o ano: ";        cin >> ano;            
-          cout << "Entre com o volume: ";     cin >> volume;         
-          cout << "Entre com o mês: ";        cin >> mes;            
-          contObras.devolverEmprestimo(make_shared<Periodico>(titulo, ano, volume, mes));
+          cout << "Entre com o titulo: ";         getline(cin, titulo);  
+          cout << "Entre com o ano: ";            cin >> ano;            
+          cout << "Entre com o volume: ";         cin >> volume;         
+          cout << "Entre com o mês: ";            cin >> mes;            
+          //contObras.devolverEmprestimo(make_shared<Periodico>(titulo, ano, volume, mes));
         } else if (tipoObra == "livro") {
-          cout << "Entre com o titulo: ";     getline(cin, titulo);  
-          cout << "Entre com o ano: ";        cin >> ano; cin.ignore();            
-          cout << "Entre com o autor: ";      getline(cin, autor);   
-          cout << "Entre com o editora: ";    getline(cin, editora); 
-          contObras.devolverEmprestimo(make_shared<Livro>(titulo, ano, autor, editora));
+          cout << "Entre com o titulo: ";         getline(cin, titulo);  
+          cout << "Entre com o ano: ";            cin >> ano; cin.ignore();            
+          cout << "Entre com o autor: ";          getline(cin, autor);   
+          cout << "Entre com o editora: ";        getline(cin, editora); 
+          //contObras.devolverEmprestimo(make_shared<Livro>(titulo, ano, autor, editora));
         } else { cout << "Erro: Tipo não reconhecido! Ignorando operação" << endl; }
         break;