seperated concerns in generators, fixed several require statements