changes to PredicateVisitor