more ShaderProgram related changes