Index: src/main/java/weka/clusterers/forMetisMQI/GraphAlgorithms.java
===================================================================
--- src/main/java/weka/clusterers/forMetisMQI/GraphAlgorithms.java	(revision 16)
+++ src/main/java/weka/clusterers/forMetisMQI/GraphAlgorithms.java	(revision 17)
@@ -2,4 +2,5 @@
 
 import java.util.HashSet;
+import java.util.Iterator;
 import java.util.Set;
 import java.util.Stack;
@@ -57,12 +58,21 @@
 	static public Set<Set<Node>> metisMqi(UndirectedGraph g, int numberOfCluster, int sizeFinerGraph) {
 		Set<Set<Node>> clusters = new HashSet<Set<Node>>();
-		Util.viewGraph(g);
+		UndirectedGraph gclone = g.clone();
+//		Util.viewGraph(g);
 		for (int i = 0; i < numberOfCluster; i++) {
 			Bisection partition = metis(g,sizeFinerGraph);
 			Set<Node> cluster = MQI.mqi(partition);
-			clusters.add(cluster);
+			Iterator<Node> clustersNode = cluster.iterator();
+			while(clustersNode.hasNext()){
+				g.removeVertex(clustersNode.next());
+			}
+			
+			
+			if(cluster.size()>10) {
+				clusters.add(cluster);
+			}
 			System.out.println("CLUSTER "+ i + ": " + cluster);
 		}
-		Util.viewClusters(g, clusters);
+		Util.viewClusters(gclone, clusters);
 		return clusters;
 	}
Index: src/main/java/weka/clusterers/forMetisMQI/MQI.java
===================================================================
--- src/main/java/weka/clusterers/forMetisMQI/MQI.java	(revision 16)
+++ src/main/java/weka/clusterers/forMetisMQI/MQI.java	(revision 17)
@@ -159,5 +159,5 @@
 	 */
 	static public Set<Node> mqi(Bisection partition) {
-		System.out.println("INITIAL BISECTION: " + partition.toString());
+//		System.out.println("INITIAL BISECTION: " + partition.toString());
 		boolean finished = false;
 		Bisection bisection = partition;
@@ -167,6 +167,6 @@
 		int maxFlowThreshold = Integer.MAX_VALUE;
 		while (!finished) {
-			Node source = new Node("S");
-			Node sink = new Node("T");
+			Node source = new Node("$$$$S");
+			Node sink = new Node("$$$$T");
 			DirectedGraph<Node, Edge> directedGraph = prepareDirectedGraph(
 					bisection, source, sink);
@@ -182,5 +182,5 @@
 				public Edge create() {
 					i++;
-					return new Edge("f" + Integer.toString(i), 1, 1);
+					return new Edge("$$$$" + Integer.toString(i), 1, 1);
 				}
 			};
@@ -194,6 +194,6 @@
 			alg.evaluate();
 //			Util.viewFlowGraph(directedGraph, edgeFlowMap);
-			System.out.println("MAX FLOW: " + alg.getMaxFlow() + " THRESHOLD: "
-					+ maxFlowThreshold);
+//			System.out.println("MAX FLOW: " + alg.getMaxFlow() + " THRESHOLD: "
+//					+ maxFlowThreshold);
 			if (alg.getMaxFlow() < maxFlowThreshold) {
 				cluster = DFSReversed(sink, directedGraph, edgeFlowMap, new HashSet<Node>());
@@ -201,5 +201,5 @@
 				 bisection = new Bisection(new Subgraph(bisection.getGraph(),
 				 cluster));
-				System.out.println("NEW BISECTION: " + bisection.toString());
+//				System.out.println("NEW BISECTION: " + bisection.toString());
 			} else
 				finished = true;
Index: src/main/java/weka/clusterers/forMetisMQI/graph/Node.java
===================================================================
--- src/main/java/weka/clusterers/forMetisMQI/graph/Node.java	(revision 16)
+++ src/main/java/weka/clusterers/forMetisMQI/graph/Node.java	(revision 17)
@@ -34,5 +34,5 @@
 	@Override
 	public String toString() {
-		return "N" + id; //+ " Cewgt: " + cewgt;
+		return id; //+ " Cewgt: " + cewgt;
 	}
 
Index: src/main/java/weka/clusterers/forMetisMQI/graph/UndirectedGraph.java
===================================================================
--- src/main/java/weka/clusterers/forMetisMQI/graph/UndirectedGraph.java	(revision 16)
+++ src/main/java/weka/clusterers/forMetisMQI/graph/UndirectedGraph.java	(revision 17)
@@ -74,6 +74,6 @@
 		while (dataIterator.hasNext()) {
 			Instance edge = dataIterator.next();
-			Node node1 = new Node(Integer.toString(((int) Math.round(edge.value(from)))));
-			Node node2 = new Node(Integer.toString(((int) Math.round(edge.value(to)))));
+			Node node1 = new Node(edge.stringValue(from));
+			Node node2 = new Node(edge.stringValue(to));
 			addVertex(node1);
 			addVertex(node2);
