more domain model refactoring