Make Keyboard interaction a class

Separate business logic