update_progress and fail safe implemented