use TRY_CATCH in the callbacks