decoupling, Customizing the Visitor using Inheritance