add ProgressListener