implementation, trie