refactoring of shaders