added new classes and modules to support joystick inputs