rule checking