sync rework, needs more