+
 /*
   A Trie (Pre-fix Tree)
 

    } else {
      var character = currentNode.char()
      while(currentNode.numChildren() == 0 && !currentNode.isRoot()) {
        print("I make it here")
        currentNode = currentNode.getParent()
        currentNode.children[character]!.setParent(nil)
        currentNode.children[character]!.update(nil)

      currentNode = child
      length -= 1
      index += 1

      if(length == 0) {
        currentNode.isWord()
        wordList.append(w)
        wordCount += 1
        return (w, true)
      }

      c = Array(word.characters)[index]
    }

    let remainingChars = String(word.characters.suffix(length))
    for c in remainingChars.characters {
      currentNode.children[String(c)] = Node(c: String(c), p: currentNode)
