diff --git a/include/caosdb/entity.h b/include/caosdb/entity.h
index b3eb9e1428f97a3835de5180428091fc746a580f..8920efe33baa67200b816f753a98da143791549b 100644
--- a/include/caosdb/entity.h
+++ b/include/caosdb/entity.h
@@ -54,6 +54,8 @@ public:
   }
 
   friend class Entity;
+  friend class Parent;
+  friend class Property;
   friend class Messages;
 
 private:
@@ -74,6 +76,8 @@ public:
   }
 
   friend class Entity;
+  friend class Parent;
+  friend class Property;
 
 private:
   inline Messages() : wrapped(nullptr){};
@@ -139,15 +143,27 @@ public:
   /**
    * Return the error messages of this parent.
    */
-  [[nodiscard]] inline auto GetErrors() const -> const Messages &;
+  [[nodiscard]] inline auto GetErrors() const -> const Messages & {
+    return errors;
+  }
+  [[nodiscard]] inline auto HasErrors() const -> bool {
+    return this->errors.wrapped->size() > 0;
+  }
   /**
    * Return the warning messages of this parent.
    */
-  [[nodiscard]] inline auto GetWarnings() const -> const Messages &;
+  [[nodiscard]] inline auto GetWarnings() const -> const Messages & {
+    return warnings;
+  }
+  [[nodiscard]] inline auto HasWarnings() const -> bool {
+    return this->warnings.wrapped->size() > 0;
+  }
   /**
    * Return the info messages of this parent.
    */
-  [[nodiscard]] inline auto GetInfos() const -> const Messages &;
+  [[nodiscard]] inline auto GetInfos() const -> const Messages & {
+    return infos;
+  }
 
   friend class Entity;
   friend class Parents;
@@ -169,6 +185,9 @@ private:
    * Message which serves as storage backend.
    */
   mutable caosdb::entity::v1alpha1::Parent *wrapped;
+  Messages errors;
+  Messages warnings;
+  Messages infos;
 };
 
 /**
diff --git a/src/caosdb/entity.cpp b/src/caosdb/entity.cpp
index 8c7359b609855905fa7b9a8a3600896c974b440a..84105eda6bebbead819d66ae92f5b693fc293481 100644
--- a/src/caosdb/entity.cpp
+++ b/src/caosdb/entity.cpp
@@ -28,7 +28,11 @@ using ProtoParent = caosdb::entity::v1alpha1::Parent;
 using ProtoEntity = caosdb::entity::v1alpha1::Entity;
 using caosdb::utility::get_arena;
 
-Parent::Parent() : wrapped(Parent::CreateProtoParent()) {}
+Parent::Parent() : wrapped(Parent::CreateProtoParent()) {
+  errors.wrapped = this->wrapped->mutable_errors();
+  warnings.wrapped = this->wrapped->mutable_warnings();
+  infos.wrapped = this->wrapped->mutable_infos();
+}
 
 auto Parent::CreateProtoParent() -> ProtoParent * {
   return google::protobuf::Arena::CreateMessage<ProtoParent>(get_arena());