use BatchingProgressMonitor for better progress output
simplify BatchingProgressMonitor implementation