Run first, if the callback is good, I will take more; if there is no callback, that's fine.