implement ogl 1