add rework functions