public static void removeNode(Node n){
		// remove the outgoing connections from neighbor to this nodes
		// TODO: This is really expensive! Can't we have a better data structure?
		//       The problem so far is the 'getRandomNode' method
		Enumeration<Node> nodeEnumer = nodes.getNodeEnumeration();
		while(nodeEnumer.hasMoreElements()){
			Node node = nodeEnumer.nextElement();
			Edge e = node.outgoingConnections.remove(node, n); // does only remove it it really exists
			if(e != null) {
				e.free();
			}
		}
		n.outgoingConnections.removeAndFreeAllEdges();
		
		nodes.removeNode(n);
		eventQueue.removeAllEventsForThisNode(n); 
		if(Global.isGuiMode){
			// un highlight this node
			Tools.getGUI().getGraphPanel().setNodeHighlighted(n, false);
		}
		Global.customGlobal.nodeRemovedEvent(n);
	}