bit trie - complete trie
switch trie to use objects so we can keep a reference count