removing a use of promise progress notifications in favor of a single resolve
adding support for emitting progress via the returned promise