rework loops