added on() callback to register to events

added direction() callback
added 'Shift', 'Ctrl', 'Space' and 'Enter' to key() callback