Refactoring TransactionTO for better generalization