Tested for keyboard input, all passed