recover callback function