devide to some functions