refactored light shaders