Updated with gamepad(360) support