diff --git a/drush/views.drush.inc b/drush/views.drush.inc
index 8cbb501..0f12f5d 100644
--- a/drush/views.drush.inc
+++ b/drush/views.drush.inc
@@ -220,14 +220,14 @@ function views_revert_view($view) {
     // Revert the view.
     $view->delete();
     // Clear its cache.
-    views_temp_store()->delete($view->name);
+    views_temp_store()->delete($view->storage->name);
     // Give feedback.
-    $message = dt("Reverted the view '@viewname'", array('@viewname' => $view->name));
+    $message = dt("Reverted the view '@viewname'", array('@viewname' => $view->storage->name));
     drush_log($message, 'success');
     // Reverted one more view.
   }
   else {
-    drush_set_error(dt("The view '@viewname' is not overridden.", array('@viewname' => $view->name)));
+    drush_set_error(dt("The view '@viewname' is not overridden.", array('@viewname' => $view->storage->name)));
   }
 }
 
@@ -327,21 +327,21 @@ function drush_views_list() {
     if ($with_type && strtolower($view->type) !== $type[0]) {
       continue;
     }
-    if ($with_name && !stristr($view->name, $name[0])) {
+    if ($with_name && !stristr($view->storage->name, $name[0])) {
       continue;
     }
 
     $row = array();
     // each row entry should be in the same order as the header
-    $row[] = $view->name;
-    $row[] = $view->description;
+    $row[] = $view->storage->name;
+    $row[] = $view->storage->description;
     $row[] = $view->type;
-    $row[] = $view->disabled ? dt('Disabled') : dt('Enabled');
-    $row[] = $view->tag;
+    $row[] = $view->storage->disabled ? dt('Disabled') : dt('Enabled');
+    $row[] = $view->storage->tag;
 
     // place the row in the appropiate array,
     // so we can have disabled views at the bottom
-    if ($view->disabled) {
+    if ($view->storage->disabled) {
       $disabled_views[] = $row;
       }
     else{
diff --git a/includes/admin.inc b/includes/admin.inc
index 21c531d..7f469fd 100644
--- a/includes/admin.inc
+++ b/includes/admin.inc
@@ -1145,7 +1145,7 @@ function views_ui_preview_form($form, &$form_state, $view, $display_id = 'defaul
     '#id' => 'preview-submit',
     '#submit' => array('views_ui_edit_form_submit_preview'),
     '#ajax' => array(
-      'path' => 'admin/structure/views/view/' . $view->name . '/preview/' . $display_id . '/ajax',
+      'path' => 'admin/structure/views/view/' . $view->storage->name . '/preview/' . $display_id . '/ajax',
       'wrapper' => 'views-preview-wrapper',
       'event' => 'click',
       'progress' => array('type' => 'throbber'),
@@ -1157,7 +1157,7 @@ function views_ui_preview_form($form, &$form_state, $view, $display_id = 'defaul
     //   we may need to split Preview into a separate form.
     '#process' => array_merge(array('views_ui_default_button'), element_info_property('submit', '#process', array())),
   );
-  $form['#action'] = url('admin/structure/views/view/' . $view->name .'/preview/' . $display_id);
+  $form['#action'] = url('admin/structure/views/view/' . $view->storage->name .'/preview/' . $display_id);
 
   return $form;
 }
@@ -1182,21 +1182,21 @@ function views_ui_render_display_top($view, $display_id) {
     '#links' => array(
       'edit-details' => array(
         'title' => t('edit view name/description'),
-        'href' => "admin/structure/views/nojs/edit-details/$view->name",
+        'href' => "admin/structure/views/nojs/edit-details/{$view->storage->name}",
         'attributes' => array('class' => array('views-ajax-link')),
       ),
       'analyze' => array(
         'title' => t('analyze view'),
-        'href' => "admin/structure/views/nojs/analyze/$view->name/$display_id",
+        'href' => "admin/structure/views/nojs/analyze/{$view->storage->name}/$display_id",
         'attributes' => array('class' => array('views-ajax-link')),
       ),
       'clone' => array(
         'title' => t('clone view'),
-        'href' => "admin/structure/views/view/$view->name/clone",
+        'href' => "admin/structure/views/view/{$view->storage->name}/clone",
       ),
       'reorder' => array(
         'title' => t('reorder displays'),
-        'href' => "admin/structure/views/nojs/reorder-displays/$view->name/$display_id",
+        'href' => "admin/structure/views/nojs/reorder-displays/{$view->storage->name}/$display_id",
         'attributes' => array('class' => array('views-ajax-link')),
       ),
     ),
@@ -1209,14 +1209,14 @@ function views_ui_render_display_top($view, $display_id) {
     if ($view->type == t('Overridden')) {
       $element['extra_actions']['#links']['revert'] = array(
         'title' => t('revert view'),
-        'href' => "admin/structure/views/view/$view->name/revert",
-        'query' => array('destination' => "admin/structure/views/view/$view->name"),
+        'href' => "admin/structure/views/view/{$view->storage->name}/revert",
+        'query' => array('destination' => "admin/structure/views/view/{$view->storage->name}"),
       );
     }
     else {
       $element['extra_actions']['#links']['delete'] = array(
         'title' => t('delete view'),
-        'href' => "admin/structure/views/view/$view->name/delete",
+        'href' => "admin/structure/views/view/{$view->storage->name}/delete",
       );
     }
   }
@@ -1232,7 +1232,7 @@ function views_ui_render_display_top($view, $display_id) {
   }
 
   // Buttons for adding a new display.
-  foreach (views_fetch_plugin_names('display', NULL, array($view->base_table)) as $type => $label) {
+  foreach (views_fetch_plugin_names('display', NULL, array($view->storage->base_table)) as $type => $label) {
     $element['add_display'][$type] = array(
       '#type' => 'submit',
       '#value' => t('Add !display', array('!display' => $label)),
@@ -1413,7 +1413,7 @@ function views_ui_edit_page_display_tabs($view, $display_id = NULL) {
       '#theme' => 'menu_local_task',
       '#link' => array(
         'title' => views_ui_get_display_label($view, $id),
-        'href' => 'admin/structure/views/view/' . $view->name . '/edit/' . $id,
+        'href' => 'admin/structure/views/view/' . $view->storage->name . '/edit/' . $id,
         'localized_options' => array(),
       ),
     );
@@ -1624,7 +1624,7 @@ function views_ui_get_display_tab_details($view, $display) {
   // track of the user's preferred collapsible state. Use the same id across
   // different displays of the same view, so changing displays doesn't
   // recollapse the column.
-  $build['columns']['third']['#attributes']['id'] = 'views-ui-advanced-column-' . $view->name;
+  $build['columns']['third']['#attributes']['id'] = 'views-ui-advanced-column-' . $view->storage->name;
   // Collapse the div by default.
   if (!config('views.settings')->get('ui.show.advanced_column')) {
     $build['columns']['third']['#attributes']['class'][] = 'ctools-collapsed';
@@ -2137,7 +2137,7 @@ function views_ui_edit_form_get_bucket($type, $view, $display) {
   // to get the right one.
   switch ($type) {
     case 'filter':
-      $rearrange_url = "admin/structure/views/nojs/rearrange-$type/$view->name/$display->id/$type";
+      $rearrange_url = "admin/structure/views/nojs/rearrange-$type/{$view->storage->name}/$display->id/$type";
       $rearrange_text = t('And/Or, Rearrange');
       // TODO: Add another class to have another symbol for filter rearrange.
       $class = 'icon compact rearrange';
@@ -2157,7 +2157,7 @@ function views_ui_edit_form_get_bucket($type, $view, $display) {
       }
 
     default:
-      $rearrange_url = "admin/structure/views/nojs/rearrange/$view->name/$display->id/$type";
+      $rearrange_url = "admin/structure/views/nojs/rearrange/{$view->storage->name}/$display->id/$type";
       $rearrange_text = t('Rearrange');
       $class = 'icon compact rearrange';
   }
@@ -2167,7 +2167,7 @@ function views_ui_edit_form_get_bucket($type, $view, $display) {
   $count_handlers = count($display->handler->getHandlers($type));
   $actions['add'] = array(
     'title' => t('Add'),
-    'href' => "admin/structure/views/nojs/add-item/$view->name/$display->id/$type",
+    'href' => "admin/structure/views/nojs/add-item/{$view->storage->name}/$display->id/$type",
     'attributes' => array('class' => array('icon compact add', 'views-ajax-link'), 'title' => t('Add'), 'id' => 'views-add-' . $type),
     'html' => TRUE,
   );
@@ -2202,7 +2202,7 @@ function views_ui_edit_form_get_bucket($type, $view, $display) {
 
   // If there's an options form for the bucket, link to it.
   if (!empty($types[$type]['options'])) {
-    $build['#title'] = l($build['#title'], "admin/structure/views/nojs/config-type/$view->name/$display->id/$type", array('attributes' => array('class' => array('views-ajax-link'), 'id' => 'views-title-' . $type)));
+    $build['#title'] = l($build['#title'], "admin/structure/views/nojs/config-type/{$view->storage->name}/$display->id/$type", array('attributes' => array('class' => array('views-ajax-link'), 'id' => 'views-title-' . $type)));
   }
 
   static $relationships = NULL;
@@ -2239,7 +2239,7 @@ function views_ui_edit_form_get_bucket($type, $view, $display) {
     if (empty($handler)) {
       $build['fields'][$id]['#class'][] = 'broken';
       $field_name = t('Broken/missing handler: @table > @field', array('@table' => $field['table'], '@field' => $field['field']));
-      $build['fields'][$id]['#link'] = l($field_name, "admin/structure/views/nojs/config-item/$view->name/$display->id/$type/$id", array('attributes' => array('class' => array('views-ajax-link')), 'html' => TRUE));
+      $build['fields'][$id]['#link'] = l($field_name, "admin/structure/views/nojs/config-item/{$view->storage->name}/$display->id/$type/$id", array('attributes' => array('class' => array('views-ajax-link')), 'html' => TRUE));
       continue;
     }
 
@@ -2254,7 +2254,7 @@ function views_ui_edit_form_get_bucket($type, $view, $display) {
     if (!empty($field['exclude'])) {
       $link_attributes['class'][] = 'views-field-excluded';
     }
-    $build['fields'][$id]['#link'] = l($link_text, "admin/structure/views/nojs/config-item/$view->name/$display->id/$type/$id", array('attributes' => $link_attributes, 'html' => TRUE));
+    $build['fields'][$id]['#link'] = l($link_text, "admin/structure/views/nojs/config-item/{$view->storage->name}/$display->id/$type/$id", array('attributes' => $link_attributes, 'html' => TRUE));
     $build['fields'][$id]['#class'][] = drupal_clean_css_identifier($display->id . '-' . $type . '-' . $id);
 
     if ($display->handler->useGroupBy() && $handler->usesGroupBy()) {
@@ -2262,7 +2262,7 @@ function views_ui_edit_form_get_bucket($type, $view, $display) {
     }
 
     if ($handler->hasExtraOptions()) {
-      $build['fields'][$id]['#settings_links'][] = l('<span class="label">' . t('Settings') . '</span>', "admin/structure/views/nojs/config-item-extra/$view->name/$display->id/$type/$id", array('attributes' => array('class' => array('views-button-configure', 'views-ajax-link'), 'title' => t('Settings')), 'html' => TRUE));
+      $build['fields'][$id]['#settings_links'][] = l('<span class="label">' . t('Settings') . '</span>', "admin/structure/views/nojs/config-item-extra/{$view->storage->name}/$display->id/$type/$id", array('attributes' => array('class' => array('views-button-configure', 'views-ajax-link'), 'title' => t('Settings')), 'html' => TRUE));
     }
 
     if ($grouping) {
diff --git a/lib/Drupal/views/Plugin/views/display/DisplayPluginBase.php b/lib/Drupal/views/Plugin/views/display/DisplayPluginBase.php
index 7cfdbff..0edbe88 100644
--- a/lib/Drupal/views/Plugin/views/display/DisplayPluginBase.php
+++ b/lib/Drupal/views/Plugin/views/display/DisplayPluginBase.php
@@ -769,7 +769,7 @@ abstract class DisplayPluginBase extends PluginBase {
 
           break;
         case 'query':
-          $views_data = views_fetch_data($this->view->base_table);
+          $views_data = views_fetch_data($this->view->storage->base_table);
           $name = !empty($views_data['table']['base']['query class']) ? $views_data['table']['base']['query class'] : 'views_query';
         default:
           $option_name = $type;
@@ -806,10 +806,10 @@ abstract class DisplayPluginBase extends PluginBase {
         $display_id = $this->isDefaulted($option_name) ? $this->display->id : 'default';
 
         if (!isset($this->base_field)) {
-          $views_data = views_fetch_data($this->view->base_table);
-          $this->view->base_field = !empty($views_data['table']['base']['field']) ? $views_data['table']['base']['field'] : '';
+          $views_data = views_fetch_data($this->view->storage->base_table);
+          $this->view->storage->base_field = !empty($views_data['table']['base']['field']) ? $views_data['table']['base']['field'] : '';
         }
-        $plugin->init($this->view->base_table, $this->view->base_field, $options);
+        $plugin->init($this->view->storage->base_table, $this->view->storage->base_field, $options);
       }
       $cache[$type][$name] = $plugin;
     }
@@ -980,7 +980,7 @@ abstract class DisplayPluginBase extends PluginBase {
       $title = $text;
     }
 
-    return l($text, 'admin/structure/views/nojs/display/' . $this->view->name . '/' . $this->display->id . '/' . $section, array('attributes' => array('class' => 'views-ajax-link ' . $class, 'title' => $title, 'id' => drupal_html_id('views-' . $this->display->id . '-' . $section)), 'html' => TRUE));
+    return l($text, 'admin/structure/views/nojs/display/' . $this->view->storage->name . '/' . $this->display->id . '/' . $section, array('attributes' => array('class' => 'views-ajax-link ' . $class, 'title' => $title, 'id' => drupal_html_id('views-' . $this->display->id . '-' . $section)), 'html' => TRUE));
   }
 
   /**
diff --git a/lib/Drupal/views/Plugin/views/display/Feed.php b/lib/Drupal/views/Plugin/views/display/Feed.php
index 1756892..98963d9 100644
--- a/lib/Drupal/views/Plugin/views/display/Feed.php
+++ b/lib/Drupal/views/Plugin/views/display/Feed.php
@@ -49,7 +49,7 @@ class Feed extends Page {
     // Set the default row style. Ideally this would be part of the option
     // definition, but in this case it's dependent on the view's base table,
     // which we don't know until init().
-    $row_plugins = views_fetch_plugin_names('row', $this->getStyleType(), array($view->base_table));
+    $row_plugins = views_fetch_plugin_names('row', $this->getStyleType(), array($view->storage->base_table));
     $default_row_plugin = key($row_plugins);
     if ($this->options['row_plugin'] == '') {
       $this->options['row_plugin'] = $default_row_plugin;
diff --git a/lib/Drupal/views/Plugin/views/display/Page.php b/lib/Drupal/views/Plugin/views/display/Page.php
index 4a0285b..dc8b319 100644
--- a/lib/Drupal/views/Plugin/views/display/Page.php
+++ b/lib/Drupal/views/Plugin/views/display/Page.php
@@ -80,7 +80,7 @@ class Page extends DisplayPluginBase {
     // views_arg_load -- which lives in views.module
 
     $bits = explode('/', $this->getOption('path'));
-    $page_arguments = array($this->view->name, $this->display->id);
+    $page_arguments = array($this->view->storage->name, $this->display->id);
     $this->view->initHandlers();
     $view_arguments = $this->view->argument;
 
@@ -141,7 +141,7 @@ class Page extends DisplayPluginBase {
         'access callback' => 'views_access',
         'access arguments' => $access_arguments,
         // Identify URL embedded arguments and correlate them to a handler
-        'load arguments'  => array($this->view->name, $this->display->id, '%index'),
+        'load arguments'  => array($this->view->storage->name, $this->display->id, '%index'),
       );
       $menu = $this->getOption('menu');
       if (empty($menu)) {
@@ -202,7 +202,7 @@ class Page extends DisplayPluginBase {
               'access callback' => 'views_access',
               'access arguments' => $access_arguments,
               // Identify URL embedded arguments and correlate them to a handler
-              'load arguments'  => array($this->view->name, $this->display->id, '%index'),
+              'load arguments'  => array($this->view->storage->name, $this->display->id, '%index'),
               'title' => $tab_options['title'],
               'description' => $tab_options['description'],
               'menu_name' => $tab_options['name'],
diff --git a/lib/Drupal/views/Tests/AnalyzeTest.php b/lib/Drupal/views/Tests/AnalyzeTest.php
index a368d39..f5497f2 100644
--- a/lib/Drupal/views/Tests/AnalyzeTest.php
+++ b/lib/Drupal/views/Tests/AnalyzeTest.php
@@ -41,7 +41,6 @@ class AnalyzeTest extends ViewTestBase {
     $this->drupalLogin($this->admin);
     // Enable the frontpage view and click the analyse button.
     $view = views_get_view('frontpage');
-    $view = $view->createDuplicate();
 
     $this->drupalGet('admin/structure/views/view/frontpage/edit');
     $this->assertLink(t('analyze view'));
diff --git a/lib/Drupal/views/ViewExecutable.php b/lib/Drupal/views/ViewExecutable.php
index ef599dc..b080112 100644
--- a/lib/Drupal/views/ViewExecutable.php
+++ b/lib/Drupal/views/ViewExecutable.php
@@ -510,7 +510,13 @@ class ViewExecutable {
    */
   public function &__get($name) {
     if (property_exists($this->storage, $name)) {
+      if ($name != 'display') {
+        debug($name);
+        debug(debug_backtrace(DEBUG_BACKTRACE_IGNORE_ARGS));
+        throw new \Exception($name);
+      }
       return $this->storage->{$name};
+
     }
     elseif (property_exists($this, $name)) {
       return $this->{$name};
@@ -528,6 +534,11 @@ class ViewExecutable {
     }
     elseif (property_exists($this->storage, $name)) {
       $this->storage->{$name} = $value;
+      if ($name != 'display') {
+        debug($name);
+        debug(debug_backtrace(DEBUG_BACKTRACE_IGNORE_ARGS));
+        throw new \Exception($name);
+      }
     }
   }
 
@@ -538,6 +549,11 @@ class ViewExecutable {
    */
   public function __call($name, $arguments) {
     if (method_exists($this->storage, $name)) {
+      if ($name != 'display') {
+        debug($name);
+        debug(debug_backtrace(DEBUG_BACKTRACE_IGNORE_ARGS));
+        throw new \Exception($name);
+      }
       return call_user_func_array(array($this->storage, $name), $arguments);
     }
   }
@@ -1084,7 +1100,7 @@ class ViewExecutable {
 
     // Create and initialize the query object.
     $views_data = views_fetch_data($this->storage->base_table);
-    $this->base_field = !empty($views_data['table']['base']['field']) ? $views_data['table']['base']['field'] : '';
+    $this->storage->base_field = !empty($views_data['table']['base']['field']) ? $views_data['table']['base']['field'] : '';
     if (!empty($views_data['table']['base']['database'])) {
       $this->base_database = $views_data['table']['base']['database'];
     }
@@ -1100,7 +1116,7 @@ class ViewExecutable {
       return FALSE;
     }
 
-    $this->query->init($this->storage->base_table, $this->base_field, $query_options['options']);
+    $this->query->init($this->storage->base_table, $this->storage->base_field, $query_options['options']);
     return TRUE;
   }
 
@@ -1580,7 +1596,7 @@ class ViewExecutable {
     }
 
     // Allow hook_views_pre_view() to set the dom_id, then ensure it is set.
-    $this->dom_id = !empty($this->dom_id) ? $this->dom_id : md5($this->name . REQUEST_TIME . rand());
+    $this->dom_id = !empty($this->dom_id) ? $this->dom_id : md5($this->storage->name . REQUEST_TIME . rand());
 
     // Allow the display handler to set up for execution
     $this->display_handler->preExecute();
diff --git a/lib/Drupal/views/ViewStorage.php b/lib/Drupal/views/ViewStorage.php
index 9700f00..535f0c5 100644
--- a/lib/Drupal/views/ViewStorage.php
+++ b/lib/Drupal/views/ViewStorage.php
@@ -152,6 +152,11 @@ class ViewStorage extends ConfigEntityBase implements ViewStorageInterface {
    */
   public function __call($name, $arguments) {
     if (method_exists($this->executable, $name)) {
+      if ($name != 'display') {
+        debug($name);
+        debug(debug_backtrace(DEBUG_BACKTRACE_IGNORE_ARGS));
+        throw new \Exception($name);
+      }
       return call_user_func_array(array($this->executable, $name), $arguments);
     }
   }
@@ -163,6 +168,11 @@ class ViewStorage extends ConfigEntityBase implements ViewStorageInterface {
    */
   public function &__get($name) {
     if (property_exists($this->executable, $name)) {
+      if ($name != 'display') {
+        debug($name);
+        debug(debug_backtrace(DEBUG_BACKTRACE_IGNORE_ARGS));
+        throw new \Exception($name);
+      }
       return $this->executable->{$name};
     }
     if (property_exists($this, $name)) {
@@ -180,6 +190,11 @@ class ViewStorage extends ConfigEntityBase implements ViewStorageInterface {
       $this->{$name} = $value;
     }
     elseif (property_exists($this->executable, $name)) {
+      if ($name != 'display') {
+        debug($name);
+        debug(debug_backtrace(DEBUG_BACKTRACE_IGNORE_ARGS));
+        throw new \Exception($name);
+      }
       $this->executable->{$name} = $value;
     }
   }
diff --git a/views_ui.module b/views_ui.module
index dd936d8..48309eb 100644
--- a/views_ui.module
+++ b/views_ui.module
@@ -271,9 +271,9 @@ function views_ui_custom_theme() {
 function views_ui_edit_page_title($view) {
   module_load_include('inc', 'views_ui', 'includes/admin');
   $bases = views_fetch_base_tables();
-  $name = $view->getHumanName();
-  if (isset($bases[$view->base_table])) {
-    $name .= ' (' . $bases[$view->base_table]['title'] . ')';
+  $name = $view->storage->getHumanName();
+  if (isset($bases[$view->storage->base_table])) {
+    $name .= ' (' . $bases[$view->storage->base_table]['title'] . ')';
   }
 
   return $name;
@@ -298,7 +298,7 @@ function views_ui_cache_load($name) {
     $view = $original_view;
     if (!empty($view)) {
       // Check to see if someone else is already editing this view.
-      $view->locked = $views_temp_store->isLocked($view->name);
+      $view->locked = $views_temp_store->isLocked($view->storage->name);
       // Set a flag to indicate that this view is being edited.
       // This flag will be used e.g. to determine whether strings
       // should be localized.
@@ -308,7 +308,7 @@ function views_ui_cache_load($name) {
   else {
     // Keep disabled/enabled status real.
     if ($original_view) {
-      $view->disabled = !empty($original_view->disabled);
+      $view->storage->disabled = !empty($original_view->storage->disabled);
     }
   }
 
