[NewFeature] Add Visitor Pattern.