first pass at the data model