define more dynamic predicates