Review the `nested_transaction` and related objects: - address TODOs (prevent copy constructors etc) - keep queues of pointers in app pools