model classes and repository