Adding progress functionality to the promise returned