working on I2C Hal (Not Complete)