Generator, part 1
Generator, part 2