implementando tdd e alguns testes unitarios.