public void add(String word) {  
    WordNode scanner = root;
    word = word.toLowerCase();
    //System.out.println(word);
    int length = word.length();
    this.numberWords++;
    for (int i = 0; i < length; i++) {
      char letter = word.charAt(i);
      int iChar = Character.getNumericValue(letter) - 10;
      hashCode = hashCode + 7 * iChar;
      //if exists than just up count, change scanning node, keep traversing
      Character c1, c2;
      c1 = new Character(letter);
      if (scanner.subNodes[iChar] != null)
        c2 = new Character(scanner.subNodes[iChar].letter);
      else
        c2 = null;
      if (c2 != null) {
        if (c1.compareTo(c2) == 0) {
          scanner = scanner.subNodes[iChar];
          if ( i == length - 1) {
            scanner.count++;
          }
        }
      } else {
      //if !exists we need to make it
        WordNode nn = scanner.subNodes[iChar] = new WordNode();
        nn.letter = letter;
        if (i == length -1)
          nn.count++;
        nn.prev = scanner;
        //Arrays.sort(scanner.subNodes);
        scanner = nn;
        this.numberNodes++;
      }
      
      
    }
  }