[#2] Provide abstract base class for different light output classes