code: public void addWord(String word) {
          if (!vocabulary.containsKey(word)) {
              VocabularyWord vw = new VocabularyWord(word);
  
              /*
                  TODO: this should be done in different way, since this implementation causes minWordFrequency ultimate ignoral if markAsSpecial set to TRUE
              
                  Probably the best way to solve it, is remove markAsSpecial option here, and let this issue be regulated with minWordFrequency
                */
              // vw.setSpecial(markAsSpecial);
  
              // initialize frequencyShift only if hugeModelExpected. It's useless otherwise :)
              if (hugeModelExpected)
                  vw.setFrequencyShift(new byte[retentionDelay]);
  
              vocabulary.put(word, vw);
  
  
  
              if (hugeModelExpected && minWordFrequency > 1
                              && hiddenWordsCounter.incrementAndGet() % scavengerThreshold == 0)
                  activateScavenger();
  
              return;
          }
      }
docs: TODO: investigate, if it's worth to make this internally synchronized and virtually thread-safe