add download onProgressEvent callback