docs: private boolean adjustLabels()
  	{
  		Iterator<GridCluster> gridClusIter = this.cluster_list.iterator();
  
  		// a. For each cluster c
  		while (gridClusIter.hasNext())
  		{
  			GridCluster c = gridClusIter.next();
  			//System.out.print("Adjusting from cluster "+c.getClusterLabel()+", standby...");
  
  			// b. for each grid, dg, of c
  			for (Map.Entry<DensityGrid, Boolean> grid : c.getGrids().entrySet())
  			{
  				DensityGrid dg = grid.getKey();
  				Boolean inside = grid.getValue();
  				//System.out.print(" Inspecting density grid, dg:"+dg.toString()+", standby...");
  				
  				// b. for each OUTSIDE grid, dg, of c
  				if (!inside)
  				{
  					//System.out.println(" Density grid dg is outside!");
  					// c. for each neighbouring grid, dgprime, of dg
  					Iterator<DensityGrid> dgNeighbourhood = dg.getNeighbours().iterator();
  					
  					while(dgNeighbourhood.hasNext())
  					{
  						DensityGrid dgprime = dgNeighbourhood.next();
  						//System.out.print("Inspecting neighbour, dgprime:"+dgprime.toString()+", standby...");
  						
  						if(this.grid_list.containsKey(dgprime))
  						{
  							CharacteristicVector cv1 = this.grid_list.get(dg);
  							CharacteristicVector cv2 = this.grid_list.get(dgprime);
  							//System.out.print(" 1: "+cv1.toString()+", 2: "+cv2.toString());
  							int class1 = cv1.getLabel();
  							int class2 = cv2.getLabel();
  							//System.out.println(" // classes "+class1+" and "+class2+".");
  
  							// ...and if dgprime isn't already in the same cluster as dg...
  							if (class1 != class2)
  							{
  								// If dgprime is in cluster c', merge c and c' into the larger of the two
  								if (class2 != NO_CLASS)
  								{
  									//System.out.println("C is "+class1+" and C' is "+class2+".");
  									if (this.cluster_list.get(class1).getWeight() < this.cluster_list.get(class2).getWeight())
  										mergeClusters(class1, class2);
  									else
  										mergeClusters(class2, class1);
  
  									return true;
  
  								}
  								// If dgprime is transitional and outside of c, assign it to c
  								else if (cv2.isTransitional(dm, dl))
  								{
  									//System.out.println("h is transitional and is assigned to cluster "+class1);
  									cv2.setLabel(class1);
  									c.addGrid(dgprime);
  									this.cluster_list.set(class1, c);
  									this.grid_list.put(dg, cv2);
  									return true;
  								}
  							}
  						}
  					}
  				}
  			}
  		}
  		return false;
  	}