improve some code and function