use chained accessors to reduce boilerplate code
add sender utility, will come in handy for non-Java clients to send messages