first shot at implementing "if context has current transaction
    send using current transcation
else
    start new transaction
    attach to commit/rollback/cleanup events
    send using the transaction
    stash the transaction in the context"

for receiving messsages

did some cleanup