diff --git a/core/lib/Drupal/Core/Entity/EntityNG.php b/core/lib/Drupal/Core/Entity/EntityNG.php
index 49fa3a0..77236e4 100644
--- a/core/lib/Drupal/Core/Entity/EntityNG.php
+++ b/core/lib/Drupal/Core/Entity/EntityNG.php
@@ -155,16 +155,6 @@ public function __construct(array $values, $entity_type, $bundle = FALSE, $trans
         }
       }
     }
-
-    $this->init();
-  }
-
-  /**
-   * Initialize the object. Invoked upon construction and wake up.
-   */
-  protected function init() {
-    // We unset all defined properties, so magic getters apply.
-    unset($this->langcode);
   }
 
   /**
@@ -180,7 +170,6 @@ protected function clearTranslationCache() {
    * Magic __wakeup() implementation.
    */
   public function __wakeup() {
-    $this->init();
     // @todo This should be done before serializing the entity, but we would
     //   need to provide the full list of data to be serialized. See the
     //   dedicated issue at https://drupal.org/node/2027795.
diff --git a/core/modules/system/tests/modules/entity_test/lib/Drupal/entity_test/Entity/EntityTest.php b/core/modules/system/tests/modules/entity_test/lib/Drupal/entity_test/Entity/EntityTest.php
index 95d74ce..543f23a 100644
--- a/core/modules/system/tests/modules/entity_test/lib/Drupal/entity_test/Entity/EntityTest.php
+++ b/core/modules/system/tests/modules/entity_test/lib/Drupal/entity_test/Entity/EntityTest.php
@@ -42,60 +42,12 @@
 class EntityTest extends EntityNG {
 
   /**
-   * The entity ID.
-   *
-   * @var \Drupal\Core\Entity\Field\FieldInterface
-   */
-  public $id;
-
-  /**
-   * The entity UUID.
-   *
-   * @var \Drupal\Core\Entity\Field\FieldInterface
-   */
-  public $uuid;
-
-  /**
-   * The bundle of the test entity.
-   *
-   * @var \Drupal\Core\Entity\Field\FieldInterface
-   */
-  public $type;
-
-  /**
-   * The name of the test entity.
-   *
-   * @var \Drupal\Core\Entity\Field\FieldInterface
-   */
-  public $name;
-
-  /**
-   * The associated user.
-   *
-   * @var \Drupal\Core\Entity\Field\FieldInterface
-   */
-  public $user_id;
-
-  /**
-   * Initialize the object. Invoked upon construction and wake up.
-   */
-  protected function init() {
-    parent::init();
-    // We unset all defined properties, so magic getters apply.
-    unset($this->id);
-    unset($this->uuid);
-    unset($this->name);
-    unset($this->user_id);
-    unset($this->type);
-  }
-
-  /**
    * Overrides Drupal\entity\Entity::label().
    */
   public function label($langcode = Language::LANGCODE_DEFAULT) {
     $info = $this->entityInfo();
     if (isset($info['entity_keys']['label']) && $info['entity_keys']['label'] == 'name') {
-      return $this->getTranslation($langcode)->name->value;
+      return $this->getTranslation($langcode)->getName();
     }
     else {
       return parent::label($langcode);
@@ -147,4 +99,54 @@ public static function baseFieldDefinitions($entity_type) {
     );
     return $fields;
   }
+
+  /**
+   * Sets the name.
+   *
+   * @param string $name
+   *   Name of the entity.
+   */
+  public function setName($name) {
+    $this->set('name', $name);
+  }
+
+  /**
+   * Returns the name.
+   *
+   * @return string
+   */
+  public function getName() {
+    return $this->name;
+  }
+
+  /**
+   * Sets the author ID.
+   *
+   * @param int $user_id
+   *   The author user ID.
+   */
+  public function setAuthorId($user_id) {
+    $this->user_id = $user_id;
+  }
+
+  /**
+   * Gets the author ID.
+   *
+   * @return int
+   *   The author user ID.
+   */
+  public function getAuthorId() {
+    return $this->user_id;
+  }
+
+  /**
+   * Returns the author user entity.
+   *
+   * @return \Drupal\user\UserInterface
+   *   The user entity.
+   */
+  public function getAuthor() {
+    return $this->user_id->entity;
+  }
+
 }
diff --git a/core/modules/system/tests/modules/entity_test/lib/Drupal/entity_test/Entity/EntityTestCache.php b/core/modules/system/tests/modules/entity_test/lib/Drupal/entity_test/Entity/EntityTestCache.php
index b4a064f..37f4acb 100644
--- a/core/modules/system/tests/modules/entity_test/lib/Drupal/entity_test/Entity/EntityTestCache.php
+++ b/core/modules/system/tests/modules/entity_test/lib/Drupal/entity_test/Entity/EntityTestCache.php
@@ -39,64 +39,4 @@
  */
 class EntityTestCache extends EntityTest {
 
-  /**
-   * The entity ID.
-   *
-   * @var \Drupal\Core\Entity\Field\FieldInterface
-   */
-  public $id;
-
-  /**
-   * The entity UUID.
-   *
-   * @var \Drupal\Core\Entity\Field\FieldInterface
-   */
-  public $uuid;
-
-  /**
-   * The bundle of the test entity.
-   *
-   * @var \Drupal\Core\Entity\Field\FieldInterface
-   */
-  public $type;
-
-  /**
-   * The name of the test entity.
-   *
-   * @var \Drupal\Core\Entity\Field\FieldInterface
-   */
-  public $name;
-
-  /**
-   * The associated user.
-   *
-   * @var \Drupal\Core\Entity\Field\FieldInterface
-   */
-  public $user_id;
-
-  /**
-   * Initialize the object. Invoked upon construction and wake up.
-   */
-  protected function init() {
-    parent::init();
-    // We unset all defined properties, so magic getters apply.
-    unset($this->id);
-    unset($this->uuid);
-    unset($this->name);
-    unset($this->user_id);
-    unset($this->type);
-  }
-
-  /**
-   * Overrides Drupal\entity\Entity::label().
-   */
-  public function label($langcode = Language::LANGCODE_DEFAULT) {
-    $info = $this->entityInfo();
-    if (isset($info['entity_keys']['label']) && $info['entity_keys']['label'] == 'name') {
-      return $this->getTranslation($langcode)->name->value;
-    }
-    else {
-      return parent::label($langcode);
-    }
-  }
 }
diff --git a/core/modules/system/tests/modules/entity_test/lib/Drupal/entity_test/Entity/EntityTestRev.php b/core/modules/system/tests/modules/entity_test/lib/Drupal/entity_test/Entity/EntityTestRev.php
index 0fabcca..c3f8f94 100644
--- a/core/modules/system/tests/modules/entity_test/lib/Drupal/entity_test/Entity/EntityTestRev.php
+++ b/core/modules/system/tests/modules/entity_test/lib/Drupal/entity_test/Entity/EntityTestRev.php
@@ -41,21 +41,6 @@
 class EntityTestRev extends EntityTest {
 
   /**
-   * The entity revision id.
-   *
-   * @var \Drupal\Core\Entity\Field\FieldInterface
-   */
-  public $revision_id;
-
-  /**
-   * Overrides EntityNG::init().
-   */
-  public function init() {
-    parent::init();
-    unset($this->revision_id);
-  }
-
-  /**
    * Implements Drupal\Core\Entity\EntityInterface::getRevisionId().
    */
   public function getRevisionId() {
