some transaction rework