Nova refatoração do algoritmo