finish the design of data model

Notice that this data models haven't been tested