Initial Data Model

Initial datamodel interfaces and base classes with assorted tests.