begin refactoring physical keyboard event to its own class