Several improves for performace and stability