predicates and fun