Adicionando testes e deixando funcional.