improved progress handling