performance improve, test some new func