diff --git a/core/modules/tour/src/Entity/Tour.php b/core/modules/tour/src/Entity/Tour.php
index d8271ac..681e456 100644
--- a/core/modules/tour/src/Entity/Tour.php
+++ b/core/modules/tour/src/Entity/Tour.php
@@ -41,7 +41,7 @@ class Tour extends ConfigEntityBase implements TourInterface {
    *
    * @var string
    */
-  public $module;
+  protected $module;
 
   /**
    * The label of the tour.
@@ -84,7 +84,7 @@ class Tour extends ConfigEntityBase implements TourInterface {
   public function __construct(array $values, $entity_type) {
     parent::__construct($values, $entity_type);
 
-    $this->tipsBag = new TipsBag(\Drupal::service('plugin.manager.tour.tip'), $this->tips);
+    $this->setTipsBag(new TipsBag(\Drupal::service('plugin.manager.tour.tip'), $this->tips));
   }
 
   /**
@@ -98,7 +98,7 @@ public function getRoutes() {
    * {@inheritdoc}
    */
   public function getTip($id) {
-    return $this->tipsBag->get($id);
+    return $this->getTipsBag()->get($id);
   }
 
   /**
@@ -123,6 +123,60 @@ public function getTips() {
   /**
    * {@inheritdoc}
    */
+  public function setTips($tips) {
+    $this->set('tips', $tips);
+    $this->tipsBag = new TipsBag(\Drupal::service('plugin.manager.tour.tip'), $this->tips);
+    return $this;
+  }
+
+  /**
+   * {@inheritdoc}
+   */
+  public function getTipsBag() {
+    return $this->tipsBag;
+  }
+
+  /**
+   * {@inheritdoc}
+   */
+  public function setTipsBag($tips_bag) {
+    $this->set('tipsBag', $tips_bag);
+    return $this;
+  }
+
+  /**
+   * {@inheritdoc}
+   */
+  public function getModule() {
+    return $this->get('module');
+  }
+
+  /**
+   * {@inheritdoc}
+   */
+  public function setModule($module) {
+    $this->set('module', $module);
+    return $this;
+  }
+
+  /**
+   * Overrides \Drupal\Core\Config\Entity\ConfigEntityBase::getExportProperties();
+   */
+  public function getExportProperties() {
+    $properties = parent::getExportProperties();
+    $names = array(
+      'routes',
+      'tips',
+    );
+    foreach ($names as $name) {
+      $properties[$name] = $this->get($name);
+    }
+    return $properties;
+  }
+
+  /**
+   * {@inheritdoc}
+   */
   public function hasMatchingRoute($route_name, $route_params) {
     if (!isset($this->keyedRoutes)) {
       $this->keyedRoutes = array();
diff --git a/core/modules/tour/src/Tests/TourTest.php b/core/modules/tour/src/Tests/TourTest.php
index 5608a4f..05ceca1 100644
--- a/core/modules/tour/src/Tests/TourTest.php
+++ b/core/modules/tour/src/Tests/TourTest.php
@@ -134,7 +134,7 @@ public function testTourFunctionality() {
     // Ensure that a tour entity has the expected dependencies based on plugin
     // providers and the module named in the configuration entity.
     $dependencies = $tour->calculateDependencies();
-    $this->assertEqual($dependencies['module'], array('system', 'tour_test'));
+    $this->assertEqual($dependencies['module'], array('tour_test'));
 
     $this->drupalGet('tour-test-1');
 
diff --git a/core/modules/tour/src/TourInterface.php b/core/modules/tour/src/TourInterface.php
index 2aa1459..236d9f3 100644
--- a/core/modules/tour/src/TourInterface.php
+++ b/core/modules/tour/src/TourInterface.php
@@ -55,6 +55,55 @@ public function getTip($id);
   public function getTips();
 
   /**
+   * Sets the tips for this tour.
+   *
+   * @param array $tips
+   *   The tips for this hour.
+   *
+   * @return $this
+   *   The Tour with the newly set tips.
+   */
+  public function setTips($tips);
+
+  /**
+   * Gets the Plugin bag containing the configured tips for this tour.
+   *
+   * @return \Drupal\tour\TipsBag
+   *   The tour tips plugin bag attached to this tour.
+   */
+  public function getTipsBag();
+
+  /**
+   * Sets the plugin bag attached to this tour.
+   *
+   * @param \Drupal\tour\TipsBag $tips_bag
+   *   The plugin bag of tips for this tour.
+   *
+   * @return $this
+   *   The Tour object with the newly set tips bag.
+   */
+  public function setTipsBag($tips_bag);
+
+  /**
+   * Gets the module which this tour belongs to.
+   *
+   * @return string
+   *   The module to which this tour belongs to.
+   */
+  public function getModule();
+
+  /**
+   * Sets the module which this tour belongs to.
+   *
+   * @param string $module
+   *   The module which this tour belongs to.
+   *
+   * @return $this
+   *   The Tour object with the newly set module.
+   */
+  public function setModule($module);
+
+  /**
    * Resets the statically cached keyed routes.
    */
   public function resetKeyedRoutes();
diff --git a/core/modules/tour/src/TourViewBuilder.php b/core/modules/tour/src/TourViewBuilder.php
index 4f3006e..277dc5b 100644
--- a/core/modules/tour/src/TourViewBuilder.php
+++ b/core/modules/tour/src/TourViewBuilder.php
@@ -28,7 +28,7 @@ public function viewMultiple(array $entities = array(), $view_mode = 'full', $la
         if ($output = $tip->getOutput()) {
           $attributes = array(
             'class' => array(
-              'tip-module-' . drupal_clean_css_identifier($entity->get('module')),
+              'tip-module-' . drupal_clean_css_identifier($entity->getModule()),
               'tip-type-' . drupal_clean_css_identifier($tip->get('plugin')),
               'tip-' . drupal_clean_css_identifier($tip->get('id')),
             ),
diff --git a/core/modules/tour/tests/tour_test/tour_test.module b/core/modules/tour/tests/tour_test/tour_test.module
index 69a9a54..38cad73 100644
--- a/core/modules/tour/tests/tour_test/tour_test.module
+++ b/core/modules/tour/tests/tour_test/tour_test.module
@@ -22,6 +22,7 @@ function tour_test_tour_load($entities) {
 function tour_test_tour_presave($entity) {
   if ($entity->id() == 'tour-entity-create-test-en') {
     $entity->set('label', $entity->label() . ' alter');
+    $entity->setModule('tour_test');
   }
 }
 
