first part of generator
doing 2nd part of gen