diff --git a/sources/ControladorObras.cpp b/sources/ControladorObras.cpp
index 116e164b45d97b17ad8a31382c39eb1890ec6b9a..8efb5c98b6525fb6f18f6ae2d44400946025baec 100644
--- a/sources/ControladorObras.cpp
+++ b/sources/ControladorObras.cpp
@@ -28,6 +28,7 @@ void ControladorObras::mostrarDetalhes() const {
 pair<int, int> ControladorObras::pesquisarObra(shared_ptr<DescricaoObra> descricao){
   pair <int, int> p = make_pair(0, 0);
 
+  // Search
   auto it_obra = find_if(this->obras.begin(), this->obras.end(), [&descricao](shared_ptr<Obra>(obra)) {
       return descricao->getTitulo() == obra->getTitulo();
       });
diff --git a/sources/main.cpp b/sources/main.cpp
index 906134d7b5f451953dd8869cd72b1d8a94ded881..bce66b0cfeef7c203c98098d4d244cf63e580ce7 100644
--- a/sources/main.cpp
+++ b/sources/main.cpp
@@ -3,6 +3,7 @@
 #include <limits>
 #include <memory>
 #include <chrono>
+#include <utility>
 
 #include "Biblioteca.hpp"
 #include "Livro.hpp"
@@ -105,6 +106,11 @@ int main(){
     string titulo, autor, editora;
     int ano, volume, mes;
 
+    // Retorno dos metodos
+    int result;
+    chrono::year_month_day dataDevolucao;
+    pair<int, int> dadosObra;
+
     switch (option) {
       case ADDUSER:
         cin.ignore();
@@ -161,53 +167,59 @@ int main(){
       case QUERYWORK:
         cout << "Entre com o tipo da obra (periodico|livro): ";   cin >> tipoObra; cin.ignore();
         if (tipoObra == "periodico") {
-          cout << "Método de busca (titulo|tituloano): ";
-          cin >> tipoBusca;
+          cout << "Método de busca (titulo|tituloano): ";         cin >> tipoBusca; cin.ignore();
+          if (tipoBusca == "titulo"){
+            cout << "Entre com o titulo: ";                       getline(cin, titulo);
+            dadosObra = contObras.pesquisarObra(make_shared<Periodico>(titulo, 0, 0, 0));
+            cout << "Quantidade Total: " << dadosObra.first << endl;
+            cout << "Quantidade Disponivel: " << dadosObra.second << endl;
+          } else if (tipoBusca == "tituloano"){
+            cout << "Entre com o titulo: ";                       getline(cin, titulo);
+            cout << "Entre com o ano: ";                          cin >> ano;
+            dadosObra = contObras.pesquisarObra(make_shared<Periodico>(titulo, ano, 0, 0));
+            cout << "Quantidade Total: " << dadosObra.first << endl;
+            cout << "Quantidade Disponivel: " << dadosObra.second << endl;
+          } else { cerr << "Tipo não reconhecido! ignorando operacao" << endl; }
         } else if (tipoObra == "livro") {
-          cout << "Método de busca (titulo|autor): ";
-          cin >> tipoBusca;
+          cout << "Método de busca (titulo|autor): ";             cin >> tipoBusca; cin.ignore();
+          if (tipoBusca == "titulo"){
+            cout << "Entre com o titulo: ";                       getline(cin, titulo);
+            dadosObra = contObras.pesquisarObra(make_shared<Livro>(titulo, 0, "dummy", "dummy"));
+            cout << "Quantidade Total: " << dadosObra.first << endl;
+            cout << "Quantidade Disponivel: " << dadosObra.second << endl;
+          } else if (tipoBusca == "autor"){
+            cout << "Entre com o autor: ";                        cin >> autor;
+            dadosObra = contObras.pesquisarObra(make_shared<Livro>("dummy", 0, autor, "dummy"));
+            cout << "Quantidade Total: " << dadosObra.first << endl;
+            cout << "Quantidade Disponivel: " << dadosObra.second << endl;
+          } else { cerr << "Tipo não reconhecido! ignorando operacao" << endl; }
         } else { cout << "> Erro: Tipo não reconhecido! Ignorando operação" << endl; }
-        //contObras.pesquisarObra(DescricaoObra &descricao);
         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); 
-          chrono::year_month_day devolucao = contUsuarios.registrarEmprestimo(
-                  userCPF, make_shared<Periodico>(titulo, 0, 0, 0));
-          if (int(devolucao.year()) == 0 && 
-              unsigned(devolucao.month()) == 0 && 
-              unsigned(devolucao.day()) == 0) {
-            cerr << "> Erro: Falha ao realizar um emprestimo!" << endl;
-          } else { cout << "> Emprestimo realizado com sucesso!" << endl; }
-        } else if (tipoObra == "livro") {
-          cout << "Entre com o titulo: ";                         getline(cin, titulo);     
-          chrono::year_month_day devolucao = contUsuarios.registrarEmprestimo(
-                  userCPF, make_shared<Livro>(titulo, 0, "dummy", "dummy"));
-          if (int(devolucao.year()) == 0 && 
-              unsigned(devolucao.month()) == 0 && 
-              unsigned(devolucao.day()) == 0) {
-            cerr << "> Erro: Falha ao realizar um emprestimo!" << endl;
-          } else { cout << "> Emprestimo realizado com sucesso!" << endl; }
-        } else { cout << "> Erro: Tipo não reconhecido! Ignorando operação" << endl; }
+        cout << "Entre com o CPF do usuário: ";                   cin >> userCPF; cin.ignore();
+        cout << "Entre com o titulo: ";                           getline(cin, titulo);
+        dataDevolucao = contUsuarios.registrarEmprestimo(userCPF, make_shared<Periodico>(titulo, 0, 0, 0));
+        if ( int(dataDevolucao.year())       == 0 && 
+             unsigned(dataDevolucao.month()) == 0 && 
+             unsigned(dataDevolucao.day())   == 0) {
+          cerr << "> Erro: Falha ao realizar um emprestimo!" << endl;
+        } else { 
+          cout << "> Emprestimo realizado com sucesso!" << endl; 
+        }
         break;
 
       case RETURNWORK:
-        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);  
-          if (contUsuarios.retornarEmprestimo(userCPF, make_shared<Periodico>(titulo, 0, 0, 0)) < 0){
-            cout << "> Devolução realizada com sucesso!" << endl;
+        cout << "Entre com o CPF do usuário: ";                   cin >> userCPF; cin.ignore();
+        cout << "Entre com o titulo: ";                           getline(cin, titulo);
+        result = contUsuarios.retornarEmprestimo(userCPF, make_shared<Periodico>(titulo, 0, 0, 0));
+        if (result < 0) { cout << "> Erro: Falha ao retornar o emprestimo!" << endl; }
+        else {
+          cout << "> Devolução realizada com sucesso!" << endl;
+          if (result != 0) { 
+            cout << "> Devolução com atraso, aplicando multa de " << result << "R$!" << endl;
           }
-        } else if (tipoObra == "livro") {
-          cout << "Entre com o titulo: ";                         getline(cin, titulo);  
-          if (contUsuarios.retornarEmprestimo(userCPF, make_shared<Livro>(titulo, 0, "dummy", "dummy")) < 0){
-            cout << "> Devolução realizada com sucesso!" << endl;
-          }
-        } else { cout << "> Erro: Tipo não reconhecido! Ignorando operação" << endl; }
+        }
         break;
 
       case FINISH: