initial commit trait containing common key event handling stuff
work on integrating event trait