input generator