v2

@troygoode CR please.  Thanks!
@OronNadiv - could this be `promisified` so that you don't need another `Promise.resolve()` and you avoid a nested `then`?