add some code generation in visit methods