more powerful predicates & guards