done with predicates