Gamepad input and events. Moved components to it's own file