refactored predicates