void onKeyPress(int key, int scancode, int action, int mods) {
    switch(action) {
      case GLFW_PRESS:
        for(KeyDownEvent e : _keyDown) { e.run(key, mods, false, scancode); }
      break;
      
      case GLFW_REPEAT:
        for(KeyDownEvent e : _keyDown) { e.run(key, mods, true, scancode); }
      break;
      
      case GLFW_RELEASE:
        for(KeyUpEvent e : _keyUp) { e.run(key, mods, scancode); }
      break;
    }
  }