public void RegisterEventListener(KeyCode keyCode, GUITextComponentOnEvent listener) {
			lock(listeners) {
				if (!listeners.ContainsKey(keyCode)) {
					listeners[keyCode] = new HashSet<GUITextComponentOnEvent>();
				}
				HashSet<GUITextComponentOnEvent> keyListeners = listeners[keyCode];

				keyListeners.Add(listener);
			}
		}
		public bool UnregisterEventListener(KeyCode keyCode, GUITextComponentOnEvent listener) {
			bool removed = false;

			lock(listeners) {
				if (listeners.ContainsKey(keyCode)) {
					removed = listeners[keyCode].Remove(listener);
					if (listeners[keyCode].Count == 0) {
						listeners.Remove(keyCode);
					}
				}
			}

			return removed;
		}