just change some function and variables' names