use new transaction layer