Angular and Visitor Pattern: Separating Data and Operations