Refectored the TransactionAbstract class