refactor: gAPI collect uses promise chaining

Same result, but clearer code flow and more modular