Remove duplication in Shader classes
Shader refactoring