use new DispatchProgress interface