generate collection data once (#80)