add generator script
add visitor base methods