payload has to be an object