refactoring ProgressListener again.