implemented first stage in seperating illumination model from the core framework
added multiple illumination model handling