reworked predicates