added a UserInput class and test