Make transaction commit/abort more robust
Make BaseTransaction internal