refatorando e adicionando novas implementações.