refactor the transaction