add validation funcs