Updated to use GLFW