explained in "Rule checkers"