implemented the visitor design pattern to handle Boson template
cosmetics
cosmetics
merge with existing code in rep