input generator class