First pass of core data model