transaction logic changed