change to PredicateNode