some funtions