Instead of creating a new traverser for each extension, I would prefer having only one traverser that traverses a list of extensions. This would remove the need to traverse the tree multiple times.