added rule check funcs