more improve, recover lock