protected void add(int nFeatFrame, History history, int number) {
    Pair<Integer, String> wT;
    int general = maxentTagger.extractors.getSize();

    if (nFeatFrame < general) {
      wT =
          new Pair<Integer, String>(
              nFeatFrame, maxentTagger.extractors.extract(nFeatFrame, history));
    } else {
      wT =
          new Pair<Integer, String>(
              nFeatFrame, maxentTagger.extractorsRare.extract(nFeatFrame - general, history));
    }

    if (tempHash.containsKey(wT)) {
      ListInstances li = tempHash.get(wT);
      // TODO: can we clean this call up somehow?  perhaps make the
      // TemplateHash aware of the TaggerExperiments if we need to, or
      // vice-versa?
      if (TaggerExperiments.isPopulated(nFeatFrame, li.getNum(), maxentTagger)) {
        li.add(number);
      }
    } else {
      ListInstances li = new ListInstances();
      li.add(number);
      tempHash.put(wT, li);
    }
  }
  protected void addPrev(int nFeatFrame, History history) {
    Pair<Integer, String> wT;
    int general = maxentTagger.extractors.getSize();

    if (nFeatFrame < general) {
      wT =
          new Pair<Integer, String>(
              nFeatFrame, maxentTagger.extractors.extract(nFeatFrame, history));
    } else {
      wT =
          new Pair<Integer, String>(
              nFeatFrame, maxentTagger.extractorsRare.extract(nFeatFrame - general, history));
    }
    if (tempHash.containsKey(wT)) {
      (tempHash.get(wT)).inc();
    } else {
      ListInstances li = new ListInstances();
      li.inc();
      tempHash.put(wT, li);
    }
  }