Added some initial support for a bundle class as a better alternative to the attach function
Cleaned up visitor interface