private ITrieNode findMatchingRootNode(String word, HashMap<Integer,Integer> tmpFrontier) {
        ITrieNode returnNode = null;
        if (word != null && word.length() > 0) {
            char searchChar = word.charAt(0);
            boolean foundIt = false;
            for (ITrieNode t: this.children.values()) {
                if (!foundIt) {
                    if (t.value.charValue() == searchChar) {
                        if (word.length() > 1) {
                            returnNode =  t.findMatchingRootNode(word.substring(1), tmpFrontier);
                        } else {
                            returnNode = t;
                        }
                        foundIt = true;
                    }
                }
            }
        }
        return returnNode;
    }