adding I2C module (need testing) and refactor packages