many versions
extractpredicate