rework of COLLECT