refactored data model after discussion