Currently, the bodies are Txn => Unit. This allows a single body to be reused for multiple transactions, but seems to be making code that uses lifecycle callbacks more bulky than necessary. We should change this to Unit => Unit, hopefully in a backward-compatible fashion.