put callback execution outside of try/catch for clarity