add generator.h