created OpenGlProgram class