abstract out data model
abstract out data model
abstract out data model