allow a progress-stream object to be passed in