Added visitor code
Removed HierarchicalReflectionVisitor,

which complicates the pull request.
Added visitor code comments