improve output visitor