Adicionando implementação inicial e testes