Changed Visitor to be a defaulted base class instead of an interface.