cleaned up modes, turned i2c modes into enum