add some funtions