Rewrite joystick api... getting close to finished