building domain model