separated out predicates