using predicates and de-ravioling