added IUserInputReader