implemented data model