ugh, opengl is hard to make work sometimes