design the data model