refactored Generators