better error handling
allow message without payload
simple examples