refactored data models