split out iocells to separate interface, just makes more sense