change some function fix