add domain model and repository