added generator class