Refatoramento do codigo e add comentarios.