broken out TransactionFactory from BaseAccountManager