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
index 6cce1c1..433606d 100644
--- a/core/modules/block_content/src/BlockContentForm.php
+++ b/core/modules/block_content/src/BlockContentForm.php
@@ -74,8 +74,8 @@ 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;
@@ -85,7 +85,7 @@ protected function prepareEntity() {
       $block->setRevisionLog(NULL);
     }
     // Always use the default revision setting.
-    $block->setNewRevision($block_type->revision);
+    $block->setNewRevision($block_type->isNewRevision());
   }
 
   /**
diff --git a/core/modules/block_content/src/BlockContentInterface.php b/core/modules/block_content/src/BlockContentInterface.php
index d6f981c..b347674 100644
--- 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,12 @@ public function getTheme();
    */
   public function getInstances();
 
+  /**
+   * Returns the block content type (bundle) name.
+   *
+   * @return string
+   *   The name of the block content type (bundle).
+   */
+  public function getBlockContentType();
+
 }
diff --git a/core/modules/block_content/src/BlockContentTypeForm.php b/core/modules/block_content/src/BlockContentTypeForm.php
index 8cde318..2a97f2e 100644
--- a/core/modules/block_content/src/BlockContentTypeForm.php
+++ b/core/modules/block_content/src/BlockContentTypeForm.php
@@ -25,6 +25,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(
@@ -47,7 +48,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'),
     );
@@ -55,7 +56,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
index cb21631..a0c87bb 100644
--- a/core/modules/block_content/src/BlockContentTypeInterface.php
+++ b/core/modules/block_content/src/BlockContentTypeInterface.php
@@ -14,4 +14,21 @@
  */
 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
index 6dec648..f527944 100644
--- a/core/modules/block_content/src/Entity/BlockContent.php
+++ b/core/modules/block_content/src/Entity/BlockContent.php
@@ -137,6 +137,13 @@ public function delete() {
   /**
    * {@inheritdoc}
    */
+  public function getBlockContentType() {
+    return $this->bundle();
+  }
+
+  /**
+   * {@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
index fa1aba1..f9b0e09 100644
--- a/core/modules/block_content/src/Entity/BlockContentType.php
+++ b/core/modules/block_content/src/Entity/BlockContentType.php
@@ -47,27 +47,41 @@ 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}
+   */
+  public function getDescription() {
+    return $this->description;
+  }
+
+  /**
+   * {@inheritdoc}
+   */
+  public function isNewRevision() {
+    return $this->revision;
+  }
+  
 }
