does not actually require GLEW