add initial support for visitor generation