diff --git a/core/modules/block_content/block_content.pages.inc b/core/modules/block_content/block_content.pages.inc
index 187ce68..23a7dea 100644
--- a/core/modules/block_content/block_content.pages.inc
+++ b/core/modules/block_content/block_content.pages.inc
@@ -28,7 +28,7 @@ function template_preprocess_block_content_add_list(&$variables) {
   foreach ($variables['content'] as $type) {
     $variables['types'][$type->id()] = array(
       'link' => \Drupal::l($type->label(), new Url('block_content.add_form', array('block_content_type' => $type->id()), array('query' => $query))),
-      'description' => Xss::filterAdmin($type->description),
+      'description' => Xss::filterAdmin($type->getDescription()),
       'title' => $type->label(),
       'localized_options' => array(
         'query' => $query,
diff --git a/core/modules/block_content/src/BlockContentForm.php b/core/modules/block_content/src/BlockContentForm.php
old mode 100644
new mode 100755
index 769a7f3..5bac77b
--- a/core/modules/block_content/src/BlockContentForm.php
+++ b/core/modules/block_content/src/BlockContentForm.php
@@ -7,6 +7,7 @@
 
 namespace Drupal\block_content;
 
+use Drupal\block_content\Entity\BlockContentType;
 use Drupal\Core\Entity\ContentEntityForm;
 use Drupal\Core\Entity\EntityManagerInterface;
 use Drupal\Core\Entity\EntityStorageInterface;
@@ -74,18 +75,17 @@ public static function create(ContainerInterface $container) {
    *
    * Prepares the custom block object.
    *
-   * Fills in a few default values, and then invokes hook_block_content_prepare()
-   * on all modules.
+   * Fills in a few default values, and then invokes
+   * hook_block_content_prepare() on all modules.
    */
   protected function prepareEntity() {
     $block = $this->entity;
     // Set up default values, if required.
-    $block_type = entity_load('block_content_type', $block->bundle());
     if (!$block->isNew()) {
       $block->setRevisionLog(NULL);
     }
     // Always use the default revision setting.
-    $block->setNewRevision($block_type->revision);
+    $block->set('revision', BlockContentType::load($block->getBlockContentType())->isNewRevision());
   }
 
   /**
@@ -181,7 +181,7 @@ public function save(array $form, FormStateInterface $form_state) {
 
     // Save as a new revision if requested to do so.
     if (!$form_state->isValueEmpty('revision')) {
-      $block->setNewRevision();
+      $block->set('revision', FALSE);
     }
 
     $insert = $block->isNew();
diff --git a/core/modules/block_content/src/BlockContentInterface.php b/core/modules/block_content/src/BlockContentInterface.php
old mode 100644
new mode 100755
index d6f981c..1ff8f68
--- a/core/modules/block_content/src/BlockContentInterface.php
+++ b/core/modules/block_content/src/BlockContentInterface.php
@@ -48,9 +48,9 @@ public function setRevisionLog($revision_log);
   /**
    * Sets the theme value.
    *
-   * When creating a new custom block from the block library, the user is
+   * When creating a new block content block from the block library, the user is
    * redirected to the configure form for that block in the given theme. The
-   * theme is stored against the block when the custom block add form is shown.
+   * theme is stored against the block when the block content add form is shown.
    *
    * @param string $theme
    *   The theme name.
@@ -63,9 +63,9 @@ public function setTheme($theme);
   /**
    * Gets the theme value.
    *
-   * When creating a new custom block from the block library, the user is
+   * When creating a new block content block from the block library, the user is
    * redirected to the configure form for that block in the given theme. The
-   * theme is stored against the block when the custom block add form is shown.
+   * theme is stored against the block when the block content add form is shown.
    *
    * @return string
    *   The theme name.
@@ -80,4 +80,20 @@ public function getTheme();
    */
   public function getInstances();
 
+  /**
+   * Return the block content type (bundle) name.
+   *
+   * @return string
+   *   The name of the block content type (bundle).
+   */
+  public function getBlockContentType();
+
+  /**
+   * Returns the block description.
+   *
+   * @return string
+   *   The description of this block.
+   */
+  public function getDescription();
+
 }
diff --git a/core/modules/block_content/src/BlockContentTypeForm.php b/core/modules/block_content/src/BlockContentTypeForm.php
index 8927162..1f2b21b 100644
--- a/core/modules/block_content/src/BlockContentTypeForm.php
+++ b/core/modules/block_content/src/BlockContentTypeForm.php
@@ -22,6 +22,7 @@ class BlockContentTypeForm extends EntityForm {
   public function form(array $form, FormStateInterface $form_state) {
     $form = parent::form($form, $form_state);
 
+    /* @var \Drupal\block_content\BlockContentTypeInterface $block_type */
     $block_type = $this->entity;
 
     $form['label'] = array(
@@ -44,7 +45,7 @@ public function form(array $form, FormStateInterface $form_state) {
 
     $form['description'] = array(
       '#type' => 'textarea',
-      '#default_value' => $block_type->description,
+      '#default_value' => $block_type->getDescription(),
       '#description' => t('Enter a description for this block type.'),
       '#title' => t('Description'),
     );
@@ -52,7 +53,7 @@ public function form(array $form, FormStateInterface $form_state) {
     $form['revision'] = array(
       '#type' => 'checkbox',
       '#title' => t('Create new revision'),
-      '#default_value' => $block_type->revision,
+      '#default_value' => $block_type->isNewRevision(),
       '#description' => t('Create a new revision by default for this block type.')
     );
 
diff --git a/core/modules/block_content/src/BlockContentTypeInterface.php b/core/modules/block_content/src/BlockContentTypeInterface.php
old mode 100644
new mode 100755
index cb21631..ebafc73
--- a/core/modules/block_content/src/BlockContentTypeInterface.php
+++ b/core/modules/block_content/src/BlockContentTypeInterface.php
@@ -14,4 +14,20 @@
  */
 interface BlockContentTypeInterface extends ConfigEntityInterface {
 
+  /**
+   * Returns the description of the block type.
+   *
+   * @return string
+   *   The description of the type of this block.
+   */
+  public function getDescription();
+
+  /**
+   * Returns whether a new revision should be created by default.
+   *
+   * @return bool
+   *   TRUE if a new revision should be created by default.
+   */
+  public function isNewRevision();
+
 }
diff --git a/core/modules/block_content/src/BlockContentTypeListBuilder.php b/core/modules/block_content/src/BlockContentTypeListBuilder.php
index 7af28b1..2a51159 100644
--- a/core/modules/block_content/src/BlockContentTypeListBuilder.php
+++ b/core/modules/block_content/src/BlockContentTypeListBuilder.php
@@ -45,7 +45,7 @@ public function buildHeader() {
    */
   public function buildRow(EntityInterface $entity) {
     $row['type'] = $entity->link();
-    $row['description'] = Xss::filterAdmin($entity->description);
+    $row['description'] = Xss::filterAdmin($entity->getDescription());
     return $row + parent::buildRow($entity);
   }
 
diff --git a/core/modules/block_content/src/Entity/BlockContent.php b/core/modules/block_content/src/Entity/BlockContent.php
old mode 100644
new mode 100755
index e2320bd..36c0a2f
--- a/core/modules/block_content/src/Entity/BlockContent.php
+++ b/core/modules/block_content/src/Entity/BlockContent.php
@@ -137,6 +137,20 @@ public function delete() {
   /**
    * {@inheritdoc}
    */
+  public function getBlockContentType() {
+    return $this->bundle();
+  }
+
+  /**
+   * {@inheritdoc}
+   */
+  public function getDescription() {
+    return $this->get('info')->value;
+  }
+
+  /**
+   * {@inheritdoc}
+   */
   public static function baseFieldDefinitions(EntityTypeInterface $entity_type) {
     $fields['id'] = BaseFieldDefinition::create('integer')
       ->setLabel(t('Custom block ID'))
diff --git a/core/modules/block_content/src/Entity/BlockContentType.php b/core/modules/block_content/src/Entity/BlockContentType.php
old mode 100644
new mode 100755
index 007ebfb..61b5792
--- a/core/modules/block_content/src/Entity/BlockContentType.php
+++ b/core/modules/block_content/src/Entity/BlockContentType.php
@@ -47,28 +47,28 @@ class BlockContentType extends ConfigEntityBundleBase implements BlockContentTyp
    *
    * @var string
    */
-  public $id;
+  protected $id;
 
   /**
    * The custom block type label.
    *
    * @var string
    */
-  public $label;
+  protected $label;
 
   /**
    * The default revision setting for custom blocks of this type.
    *
    * @var bool
    */
-  public $revision;
+  protected $revision;
 
   /**
    * The description of the block type.
    *
    * @var string
    */
-  public $description;
+  protected $description;
 
   /**
    * {@inheritdoc}
@@ -81,4 +81,18 @@ public function postSave(EntityStorageInterface $storage, $update = TRUE) {
     }
   }
 
+  /**
+   * {@inheritdoc}
+   */
+  public function getDescription() {
+    return $this->description;
+  }
+
+  /**
+   * {@inheritdoc}
+   */
+  public function isNewRevision() {
+    return $this->revision;
+  }
+
 }
diff --git a/core/modules/block_content/src/Tests/BlockContentRevisionsTest.php b/core/modules/block_content/src/Tests/BlockContentRevisionsTest.php
old mode 100644
new mode 100755
index 79233f3..fd47722
--- a/core/modules/block_content/src/Tests/BlockContentRevisionsTest.php
+++ b/core/modules/block_content/src/Tests/BlockContentRevisionsTest.php
@@ -45,7 +45,7 @@ protected function setUp() {
     // Create three revisions.
     $revision_count = 3;
     for ($i = 0; $i < $revision_count; $i++) {
-      $block->setNewRevision(TRUE);
+      $block->set('revision', TRUE);
       $block->setRevisionLog($this->randomMachineName(32));
       $logs[] = $block->getRevisionLog();
       $block->save();
@@ -78,7 +78,7 @@ public function testRevisions() {
     // Make a new revision and set it to not be default.
     // This will create a new revision that is not "front facing".
     // Save this as a non-default revision.
-    $loaded->setNewRevision();
+    $loaded->set('revision', FALSE);
     $loaded->isDefaultRevision(FALSE);
     $loaded->body = $this->randomMachineName(8);
     $loaded->save();
diff --git a/core/themes/seven/seven.theme b/core/themes/seven/seven.theme
index ada5da2..47989d7 100644
--- a/core/themes/seven/seven.theme
+++ b/core/themes/seven/seven.theme
@@ -90,7 +90,7 @@ function seven_preprocess_block_content_add_list(&$variables) {
   if (!empty($variables['content'])) {
     foreach ($variables['content'] as $type) {
       $variables['types'][$type->id()]['label'] = String::checkPlain($type->label());
-      $variables['types'][$type->id()]['description'] = Xss::filterAdmin($type->description);
+      $variables['types'][$type->id()]['description'] = Xss::filterAdmin($type->getDescription());
       $options = array('query' => \Drupal::request()->query->all());
       $variables['types'][$type->id()]['url'] = \Drupal::url('block_content.add_form', array('block_content_type' => $type->id()), $options);
     }
