changed visit to accept in some cases to truly reflect the Visitor pattern. I added a parameter namePredicate to the visit methods to know in which
Oprop predicate we are, as we dont have a field parent that lets us go up the tree