private MouseEventHandler() {
		// Instaniate the mouseListeningObjects, IE every
		registeredListeningObjects = new SynchronisedGameQueue<IMouseEventable>();

		// Create a new list for each type of event and add it to our map of
		// EventType -> list of waiting events
		waitingEventLists = Collections.synchronizedMap(new ConcurrentHashMap<MouseEventType, Collection<IMouseEventable>>());

		for (MouseEventType eventType : MouseEventType.values()) {
			waitingEventLists.put(eventType, Collections.synchronizedList(new ArrayList<IMouseEventable>()));
		}

		currentMouseOver = new SynchronisedGameQueue<IMouseEventable>();
		currentMouseFocus = new SynchronisedGameQueue<IMouseEventable>();
	}