use modern OpenGL