Is it generally acceptable to allow a Visitor to modify state of the Receiver, or should that be a Command pattern instead?