more predicate implementations