docs: function GetRootCountInformation(root_docs, filter_manager){
  
      // Collect the root ids from the docs.
      var root_ids = [];
      us.each(root_docs, function(doc){
  	root_ids.push(doc['annotation_class']);
      });
  
      var root_promises = [];
      us.each(root_ids, function(id){
  	    
  	//If it was not in our cache, we have to go out and
  	//find it.
  	var resp_promise = _create_count_promise(id, filter_manager);
  	root_promises.push(resp_promise);
      });	
  
      // Action on getting a response.
      var id_to_count = {};
      var accumulator_fun = function(resp){   
  	    
  	// First, figure out who this was.
  	var acc = null;
  	var fqs = resp.parameter('fq');
  	us.each(fqs, function(fq){
  	    if( fq.substr(0, 17) === 'regulates_closure' ){
  		acc = fq.substr(18, fq.length-1);
  		acc = bbop.dequote(acc);
  	    }
  	});
  	    
  	console.log('root accumulation action for: ' + acc);
  
  	// Assuming we know...
  	if( acc ){
  
  	    // Get the annotation count...
              var total = resp.total_documents();
  	    
  	    // ...update the internal structures...
  	    id_to_count[acc] = total;
  	}
      };
  	
      // The final function is the data renderer.
      var final_fun = function(){
  	console.log('root count info collected: ', id_to_count);
  	ResetTreeWithRootInfo(root_docs, id_to_count, filter_manager);
      };
  	
      // In case of error.
      var error_fun = function(err){
  	if(err){
  	    console.log('error before end of batch (root): ' + err.toString());
  	}
      };
  	
      var coordinator = _create_manager('ontology');
      coordinator.run_promise_functions(
  	root_promises,
  	accumulator_fun,
  	final_fun,
  	error_fun);
  }