add predicate fns