change some functions