I will start with I2C introduction, next we will look at the wiring. After that we will do some coding.
Before we add new drivers lets do some more cleaning, upgrading and add nose tests.
First we will clean driver class and remove manual 4/8 bit function usage.
Next we will add abstraction class to our driver to force required functions implementation.
Finally we will add Nose framework for tests. And add few simple tests.
This time I will attach ziped source code