split into main, collectors and push