Add PreOrderVisitor