 		X: 88
 		Y: 89
 		Z: 90
-		Backspace: 8
-		Tab: 9
-		Enter: 13
-		Shift: 16
-		Ctrl: 17
-		Alt: 18
-		Esc: 27
-		Space: 32
-		PageUp: 33
-		PageDown: 34
-		End: 35
-		Home: 36
-		Left: 37
-		Up: 38
-		Right: 39
-		Down: 40
-		Del: 46
+
 		F1: 112
 		F2: 113
 		F3: 114

		window.addEventListener 'keyup', (e) =>
			@keyStates[e.keyCode] = no

	isKeyDown: (key) ->
		keyCode = @keyToKeyCode key
		@keyStates[keyCode]

	keyToKeyCode: (key) ->
		keyCode = @keyToKeyCodeMap[key]
		return if keyCode? then keyCode	else null

	handleAppEvents: (app, events) ->
		keydownListeners = {}
		window.addEventListener 'keydown', (e) =>
			keydownListeners[e.key]?.call app, e

		for type of events
			if type in ['mousedown', 'mousemove', 'mouseup', 'keydown', 'keyup']
				app.$renderer.dom.addEventListener type, events[type].bind(app)
			else if type.indexOf('keydown.') == 0
				key = type.substring 8
				keydownListeners[key] = events[type]

	keyToKeyCodeMap:
		1: 49
		2: 50
		3: 51

		F10: 121
		F11: 122
		F12: 123

		'`': 192
		'=': 187
		',': 188
