now that predicates have a decent abstraction layer on them, introduce a new