payload needs to be a hash