updated to use glfw