refactor. more generators