changed from SDL2 to GLFW, because SDL sucks