refactored progress reporting from ProgressConfig to SimpleProgressReporter and PeriodicProgressReporter. added tests for both