The visitor pattern has been added.