now supportning 16 and 8 bit read_write via internal setting
fixed up some i2c calls to be generic and support 8 and 16 bits