The essence of the visitor pattern