inputFactory