Corrige um bug e mais refatoração da função generator. Devido ao bug, é preciso haver mais testes. Eliminates a bug and refactor even more the function generator. Given the bug, it needs more testing.