implement ProgressPrinter