more improve recover logic