passando nos testes. Código horrível e lento.