Refactored to use addresses with get/setGPIOAddress (based on setGPIOAddresses/maxGPIOAddress), and also exposed regular GPIO with get/setGPIO