implemented domain model classes