keyboard input

retreating a bit from the original pattern concept