idea is to break out core functionality (such as i2c) into packages