REFACTOR: heavy changes in visit method implementation. Now all visits happen through interfaces. # of visit methods have been reduced to FOUR! props to Deo for the vision.