* re-construct collect() to smaller functions, fixing langscape.io reports