refatoracao e fixes na logica