modify callback funciton