gamepad overhauled to accept custom button functions