Oh boy, this was a tough one for me. I am not very strong in implementing Trie data structures. But I do understand there use in searching for a word. I made a lot of mistakes. When I forgot to put the return for the search method that was probably because I removed the return for the insert method. because insert does not return anything. Also the self.children is literally a dictionary of the children of the current Trie @ 1. it contains the key="char" and value="Trie @ 2". A different Trie object located at a different memory address on the computer. each time I insert a new character as a child for some Trie it will initialize a new Trie object by the default factory of the defaultdict. Alright this is too long. I'm not going any farther for now lol.