using async eachlimit to speed up quality gathering