This two-phase mark/collect process is worth an explanatory comment.