private int[][] ClusterThreadHandler(AbstractGraph<BCNode,BCEdge> minSpanningTree, int rounds, int threadCount){
		int[][] output = new int[_nMatrix.length][_nMatrix.length];
		
		//set these -- get value from somewhere 

		int threadReps = rounds / threadCount ;
		
		ArrayList<Thread> threads = new ArrayList<Thread>();
		ArrayList<int[][]> matricies = new ArrayList<int[][]>(); 
		
		//create and start specified number of threads
		for(int i = 0; i < threadCount; i++){
			int[][] threadMatrix = new int[_nMatrix.length][_nMatrix.length];
			matricies.add(threadMatrix);
			System.out.println("Starting consensus clustering thread :" +i);
			Thread clusterMatrixThread = new Thread(new consensusClusteringRoundThread(minSpanningTree, threadReps, threadMatrix ), Integer.toString(i));
			clusterMatrixThread.start();
			threads.add(clusterMatrixThread);
		}
		
		//wait for threads to finish
		try{
			
			for(int i = 0; i < threadCount; i ++){
				System.out.println("Waiting for thread "+i+" to finish");
				threads.get(i).join();
			}
			
		}catch (InterruptedException e) {
			System.out.println("Thread error");
			e.printStackTrace();
		}
		
		//copy in results
		for(int[][] result: matricies){
			for(int i = 0; i < result.length; i ++){
				for(int j = 0; j < result[i].length; j ++){
					_nMatrix[i][j] += result[i][j];
				}
			}
		}
		
		return output;
	}