Make progress optional
Implement update