diff --git a/src/caosdb/high_level_api.py b/src/caosdb/high_level_api.py
index fed8b78632a108ec80faefd2ec666686ff95bad1..21e0b19a26e9a85b464b3defb59f4cf443eb8bd7 100644
--- a/src/caosdb/high_level_api.py
+++ b/src/caosdb/high_level_api.py
@@ -38,6 +38,39 @@ from .apiutils import get_type_of_entity_with
 
 from typing import Any, Optional
 
+from dataclasses import dataclass
+
+@dataclass
+class CaosDBPropertyMetaData:
+    # name is already the name of the attribute
+    unit: Optional[str] = None
+    datatype: Optional[str] = None
+    file: Optional[str] = None
+    path: Optional[str] = None
+    description: Optional[str] = None
+    id: Optional[int] = None
+    importance: Optional[str] = None
+    
+
+@dataclass
+class CaosDBPythonUnresolvedParent:
+    """
+    Parents can be either given by name or by ID.
+
+    When resolved, both fields should be set.
+    """
+
+    id: Optional[int] = None
+    name: Optional[str] = None
+
+
+@dataclass
+class CaosDBPythonUnresolvedReference:
+
+    def __init__(self, id=None):
+        self.id = id
+
+
 class CaosDBPythonEntity(object):
 
     _last_id = 0
@@ -323,22 +356,6 @@ class CaosDBPythonProperty(CaosDBPythonEntity):
     pass
 
 
-class CaosDBPythonParent(object):
-    """
-    Parents can be either given by name or by ID.
-
-    When resolved, both fields should be set.
-    """
-
-    def __init__(self, id=None, name=None):
-        self.id = id
-        self.name = name
-
-
-class CaosDBPythonUnresolvedReference(object):
-
-    def __init__(self, id=None):
-        self.id = id
 
 
 class CaosDBPythonFile(CaosDBPythonEntity):