Double dispatch.