ensure callback exists