added UserInput class