Material and Shader refactoring