refactored ContentModelBase