code: public void setStringWrapperPool(StringWrapperIterator it) 
  	{ 
  		// train i-th learner on i-th field of string wrapper
  		List buffer = asMultiStringWrapperList(it);
  		if (buffer.size()==0) throw new IllegalStateException("need some unlabeled strings");
  		MultiStringWrapper prototype = (MultiStringWrapper)buffer.get(0);
  		for (int i=0; i<prototype.size(); i++) {
  			int j = prototype.getDistanceLearnerIndex(i);
  			innerLearners[j].setStringWrapperPool( new JthStringWrapperValueIterator( j, buffer.iterator() ));
  		}
  		comboSetStringWrapperPool( buffer.iterator() );
  	}
docs: Pass the training data along to the inner learners.