domain model restructure