major refactoring of visitors. progress on type aliases