on_progress() is sufficient, adding complexity with update_progress is not useful, you could remove it.