pass extra_data to onComplete