exception changed to callback