generalize transactionCache