@Override
	protected void processGraph()
	{
		theLevels = new ArrayList<Map<Node, Graph>>(levelNodes.size());
		for(Map<Node, Node> level : levelNodes)
		{
			// create the level
			Map<Node, Graph> graphs = new HashMap<Node, Graph>();
			theLevels.add(graphs);
			
			// put the nodes in corresponding graphs
			for(Map.Entry<Node, Node> memberShip : level.entrySet())
			{
				if(!graphs.containsKey(memberShip.getValue()))
					// new parent node -> new subordinate graph
					// TODO log name: unitName + ":" + belongsTo.getValue(), unitName));
					graphs.put(memberShip.getValue(), new SimpleGraph());
				graphs.get(memberShip.getValue()).addNode(memberShip.getKey());
			}
			// put in-graph edges in the graphs
			for(Graph graph : graphs.values())
				for(Edge edge : theGraph.getEdges())
					if(graph.contains(edge.getTo()) && graph.contains(edge.getFrom()))
						graph.addEdge(edge);
		}
		
	}