this needs to be a byte string
allow different kinds of message publishing