add on_success callback