ShaderProgramManager improved