improve, fix bugs