adicionado testes e remodelado a estrutura