private void findCompletionsHelper(TrieNode root, LinkedList<String> completions, String prefix, String word) {
		if (prefix.isEmpty()) {
			String append = "";
			if (root.getNodeValue() != null) {
				append += root.getNodeValue();
			}
			if (root.getChildren().isEmpty()) {
				completions.add(word + append);
			} else {
				// else still contains children.
				for (TrieNode child : root.getChildren()) {
					findCompletionsHelper(child, completions, prefix, word + append);
				}
			}
		} else {
			Character c = prefix.charAt(0);
			if (root.getNodeValue() == null) {
				for (TrieNode child : root.getChildren()) {
					findCompletionsHelper(child, completions, prefix, word);
				}
			}
			else if (root.getNodeValue().equals(c)) {
				for (TrieNode child : root.getChildren()) {
					findCompletionsHelper(child, completions, prefix.substring(1), word + c);
				}
			}
		}
		
	}