diff --git a/src/Entity/Abstraction/AbstractEntity.php b/src/Entity/Abstraction/AbstractEntity.php
index <HASH>..<HASH> 100644
--- a/src/Entity/Abstraction/AbstractEntity.php
+++ b/src/Entity/Abstraction/AbstractEntity.php
@@ -71,6 +71,11 @@ abstract class AbstractEntity implements EntityInterface
     private $position = 0;
 
     /**
+     * @var array
+     */
+    private $privileged = array();
+
+    /**
      * Default constructor.
      *
      * @param Traversable                           $data
@@ -99,6 +104,8 @@ abstract class AbstractEntity implements EntityInterface
 
         $this->unsetProperties($this->definitions->keys());
 
+        $this->privileged = get_object_vars($this);
+
         $this->resolveDefaults();
 
         if (!is_null($data)) {
@@ -325,6 +332,10 @@ abstract class AbstractEntity implements EntityInterface
      */
     public function &get($name)
     {
+        if (array_key_exists($name, $this->privileged)) {
+            return $this;
+        }
+
         if (!array_key_exists($name, $this->properties)) {
             throw new RuntimeException(sprintf(
                 "Attempt to access property '%s' of class '%s' failed. Property does not exist.",
@@ -443,7 +454,7 @@ abstract class AbstractEntity implements EntityInterface
         $keys = array_keys($this->properties);
         $key  = $keys[$this->position];
 
-        return $this->get($key);
+        return $this->get($key);¶
     }
 
     /**
Ignore priveliged properties (properties not defined as part of the entity)