add callback to Option