add 回调机制