rework of the domain model