A pretty neat trie data structure for searching