code: public void process(List<EllipseInfo> ellipses , List<List<Node>> output ) {
  
  		init(ellipses);
  
  		connect(ellipses);
  
  		output.clear();
  		for (int i = 0; i < clusters.size(); i++) {
  			List<Node> c = clusters.get(i);
  
  			// remove noise
  			removeSingleConnections(c);
  
  			if( c.size() >= minimumClusterSize) {
  				output.add(c);
  			}
  		}
  	}
docs: Processes the ellipses and creates clusters.
  
  @param ellipses Set of unordered ellipses
  @param output Resulting found clusters.  Cleared automatically.  Returned lists are recycled on next call.