add some function
change some function