use pointers for the Payload