add transaction/transaction repo class and tests