domain model initial commit