rebuild visitor based on VoidVisitor