change and add many functions