preliminary cbc interface, begun refactoring