Refactored LightEngine and Light class