Adding Behavioral Visitor impl