The IJoystick interface class is now the base class which all other joystick classes should be derived from. It takes care of its own state so the Joystick manager doesnt have to.