Refactored "on", "once": cb is first argument