Add Visitor pattern.