refine callback