新增callback function