code: public DistanceInstance nextQuery() {
  		// need to save out the i-th field, if it's been prepared.
  		// poll sublearners in random order, to be fair
  		// indices [0,innerLearners.length-1] are the inner learners,
  		// index innerLearners.length is the comboLearner
  		ArrayList indices = new ArrayList(innerLearners.length+1);
  		for (int i=0; i<indices.size(); i++) indices.set(i, new Integer(i) );
  		Collections.shuffle(indices);
  		for (int i=0; i<indices.size(); i++) {
  			int k = ((Integer)indices.get(i)).intValue();
  			if ( k==innerLearners.length && comboHasNextQuery() ) {
  				return comboNextQuery();
  			} else if (innerLearners[k].hasNextQuery()) {
  				return innerLearners[k].nextQuery();
  			}
  		}
  		throw new IllegalStateException("someone seems to have forgotten they want a query");
  	}
docs: Get a next query from one of the sublearners