TransactionManager refactor