Implementação com base na classe oferecida pelo Fabio commit 2: Atualização e organização das classe e metodos, alguns metodos ainda quero esclarecer