private HashSet<NVertex<D>> test( NGraph<D> g, int k ) {
		
		HashSet<NVertex<D>> potentialVertices = new HashSet<NVertex<D>>();
		
		for( NVertex<D> v : g ) {
			if( v.getNumberOfNeighbors() >= k-1 ) {
				potentialVertices.add( v );
				//System.out.println( "Potentially " + v.data.name );
			}
		}
		
		boolean changed = true;
		while( changed ) {
			changed = false;
			
			ArrayList<NVertex<D>> toBeRemoved = new ArrayList<NVertex<D>>();
			
			if( potentialVertices.size() < k ) return null;
				
			for( NVertex<D> v : potentialVertices ) {
				//System.out.println( "Checking " + v.data.name );
				int potentialCliqueNeighbors = 0;
				for( NVertex<D> n : v ) {
					if( potentialVertices.contains(n) ) ++potentialCliqueNeighbors;
				}
				//System.out.println( "It still has " + potentialCliqueNeighbors + " potential clique neighbors." );
				if( potentialCliqueNeighbors < k-1 ) {
					toBeRemoved.add( v );
					changed = true;
					//System.out.println( "Deleted " + v.data.name );
				}
			}
			
			potentialVertices.removeAll( toBeRemoved );
			
		}
		
		if( potentialVertices.size() >= k ) {
			return potentialVertices;			
		} else {
			return null;
		}
		
	}