refatoração do projeto e correções de erros

refatoração do projeto e correções de erros. veja os commits para mais informações