match setPayload() behavior