Refactored GLSLProgram and GLSLShader structure