adapted for new predicate handler