codigo refatorado apos impl divindo tarefas feitas e nao feitas