add callback to .run(cb)