#5 custom payload support

#5 Adds custom payload support

docs need to be updated still.
should the `T` here be `HelloWorldConfiguration`?