add comments to the progress method; replace returns with os.Exit in main method