Nice!

Consider renaming this to 'RecursiveVisitor' since it's purpose is to walk down the tree recursively.