Added initial gamepad support, still working on event system