implementando padrao de projeto factory e seus respectivos testes