diff --git a/drush/views.drush.inc b/drush/views.drush.inc
index 4384339..2a3742a 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)));
   }
 }
 
@@ -328,21 +328,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 0bab69f..0b5633d 100644
--- a/includes/admin.inc
+++ b/includes/admin.inc
@@ -131,7 +131,7 @@ function views_ui_preview($view, $display_id, $args = array()) {
     }
 
     // Make view links come back to preview.
-    $view->override_path = 'admin/structure/views/nojs/preview/' . $view->name . '/' . $display_id;
+    $view->override_path = 'admin/structure/views/nojs/preview/' . $view->storage->name . '/' . $display_id;
 
     // Also override the current path so we get the pager.
     $original_path = current_path();
@@ -712,7 +712,7 @@ function views_ui_add_form_store_edit_submit($form, &$form_state) {
     $destination = drupal_get_destination();
     $query->remove('destination');
   }
-  $form_state['redirect'] = array('admin/structure/views/view/' . $view->name, array('query' => $destination));
+  $form_state['redirect'] = array('admin/structure/views/view/' . $view->storage->name, array('query' => $destination));
 }
 
 /**
@@ -798,19 +798,19 @@ function views_ui_break_lock_confirm($form, &$form_state, $view) {
   $form = array();
 
   if (empty($view->locked)) {
-    $form['message']['#markup'] = t('There is no lock on view %name to break.', array('%name' => $view->name));
+    $form['message']['#markup'] = t('There is no lock on view %name to break.', array('%name' => $view->storage->name));
     return $form;
   }
 
   $cancel = drupal_container()->get('request')->query->get('cancel');
   if (empty($cancel)) {
-    $cancel = 'admin/structure/views/view/' . $view->name . '/edit';
+    $cancel = 'admin/structure/views/view/' . $view->storage->name . '/edit';
   }
 
   $account = user_load($view->locked->ownerId);
   return confirm_form($form,
                   t('Are you sure you want to break the lock on view %name?',
-                  array('%name' => $view->name)),
+                  array('%name' => $view->storage->name)),
                   $cancel,
                   t('By breaking this lock, any unsaved changes made by !user will be lost!', array('!user' => theme('username', array('account' => $account)))),
                   t('Break lock'),
@@ -973,7 +973,7 @@ function views_ui_edit_form($form, &$form_state, $view, $display_id = NULL) {
     $form['locked'] = array(
       '#theme_wrappers' => array('container'),
       '#attributes' => array('class' => array('view-locked', 'messages', 'warning')),
-      '#markup' => t('This view is being edited by user !user, and is therefore locked from editing by others. This lock is !age old. Click here to <a href="!break">break this lock</a>.', array('!user' => theme('username', array('account' => user_load($view->locked->ownerId))), '!age' => format_interval(REQUEST_TIME - $view->locked->updated), '!break' => url('admin/structure/views/view/' . $view->name . '/break-lock'))),
+      '#markup' => t('This view is being edited by user !user, and is therefore locked from editing by others. This lock is !age old. Click here to <a href="!break">break this lock</a>.', array('!user' => theme('username', array('account' => user_load($view->locked->ownerId))), '!age' => format_interval(REQUEST_TIME - $view->locked->updated), '!break' => url('admin/structure/views/view/' . $view->storage->name . '/break-lock'))),
     );
   }
   if (isset($view->vid) && $view->vid == 'new') {
@@ -1129,7 +1129,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'),
@@ -1141,7 +1141,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;
 }
@@ -1166,21 +1166,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')),
       ),
     ),
@@ -1193,14 +1193,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",
       );
     }
   }
@@ -1216,7 +1216,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)),
@@ -1250,7 +1250,7 @@ function views_ui_edit_form_submit_add_display($form, &$form_state) {
   views_ui_cache_set($view);
 
   // Redirect to the new display's edit page.
-  $form_state['redirect'] = 'admin/structure/views/view/' . $view->name . '/edit/' . $display_id;
+  $form_state['redirect'] = 'admin/structure/views/view/' . $view->storage->name . '/edit/' . $display_id;
 }
 
 /**
@@ -1272,7 +1272,7 @@ function views_ui_edit_form_submit_duplicate_display($form, &$form_state) {
   views_ui_cache_set($view);
 
   // Redirect to the new display's edit page.
-  $form_state['redirect'] = 'admin/structure/views/view/' . $view->name . '/edit/' . $new_display_id;
+  $form_state['redirect'] = 'admin/structure/views/view/' . $view->storage->name . '/edit/' . $new_display_id;
 }
 
 /**
@@ -1288,7 +1288,7 @@ function views_ui_edit_form_submit_delete_display($form, &$form_state) {
 
   // Redirect to the top-level edit page. The first remaining display will
   // become the active display.
-  $form_state['redirect'] = 'admin/structure/views/view/' . $view->name;
+  $form_state['redirect'] = 'admin/structure/views/view/' . $view->storage->name;
 }
 
 /**
@@ -1392,12 +1392,13 @@ function views_ui_edit_page_display_tabs($view, $display_id = NULL) {
   $tabs = array();
 
   // Create a tab for each display.
-  foreach ($view->display as $id => $display) {
+  $view->initDisplay();
+  foreach ($view->storage->display as $id => $display) {
     $tabs[$id] = array(
       '#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(),
       ),
     );
@@ -1416,7 +1417,7 @@ function views_ui_edit_page_display_tabs($view, $display_id = NULL) {
 
   // Mark the display tab as red to show validation errors.
   $view->validate();
-  foreach ($view->display as $id => $display) {
+  foreach ($view->displayHandlers as $id => $display) {
     if (!empty($view->display_errors[$id])) {
       // Always show the tab.
       $tabs[$id]['#access'] = TRUE;
@@ -1437,7 +1438,7 @@ function views_ui_show_default_display($view) {
   $advanced_mode = config('views.settings')->get('ui.show.master_display');
   // For other users, show the default display only if there are no others, and
   // hide it if there's at least one "real" display.
-  $additional_displays = (count($view->display) == 1);
+  $additional_displays = (count($view->displayHandlers) == 1);
 
   return $advanced_mode || $additional_displays;
 }
@@ -1447,7 +1448,7 @@ function views_ui_show_default_display($view) {
  */
 function views_ui_get_display_tab($view, $display_id) {
   $build = array();
-  $display = $view->display[$display_id];
+  $display = $view->displayHandlers[$display_id];
   // If the plugin doesn't exist, display an error message instead of an edit
   // page.
   if (empty($display)) {
@@ -1457,7 +1458,7 @@ function views_ui_get_display_tab($view, $display_id) {
   }
   // Build the content of the edit page.
   else {
-    $build['details'] = views_ui_get_display_tab_details($view, $display);
+    $build['details'] = views_ui_get_display_tab_details($view, $display->display);
   }
   // In AJAX context, views_ui_regenerate_tab() returns this outside of form
   // context, so hook_form_views_ui_edit_form_alter() is insufficient.
@@ -1931,10 +1932,10 @@ function views_ui_import_validate($form, &$form_state) {
   }
 
   if ($form_state['values']['name']) {
-    $view->name = $form_state['values']['name'];
+    $view->storage->name = $form_state['values']['name'];
   }
 
-  $test = views_get_view($view->name);
+  $test = views_get_view($view->storage->name);
   if (!$form_state['values']['name_override']) {
     if ($test && $test->type != t('Default')) {
       form_set_error('', t('A view by that name already exists; please choose a different name'));
@@ -2115,7 +2116,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';
@@ -2135,7 +2136,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';
   }
@@ -2145,7 +2146,7 @@ function views_ui_edit_form_get_bucket($type, $view, $display) {
   $count_handlers = count($view->displayHandlers[$display['id']]->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,
   );
@@ -2180,7 +2181,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;
@@ -2217,7 +2218,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;
     }
 
@@ -2232,15 +2233,15 @@ 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 ($view->displayHandlers[$display['id']]->useGroupBy() && $handler->usesGroupBy()) {
-      $build['fields'][$id]['#settings_links'][] = l('<span class="label">' . t('Aggregation settings') . '</span>', "admin/structure/views/nojs/config-item-group/$view->name/{$display['id']}/$type/$id", array('attributes' => array('class' => 'views-button-configure views-ajax-link', 'title' => t('Aggregation settings')), 'html' => TRUE));
+      $build['fields'][$id]['#settings_links'][] = l('<span class="label">' . t('Aggregation settings') . '</span>', "admin/structure/views/nojs/config-item-group/{$view->storage->name}/{$display['id']}/$type/$id", array('attributes' => array('class' => 'views-button-configure views-ajax-link', 'title' => t('Aggregation settings')), 'html' => TRUE));
     }
 
     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) {
@@ -2678,7 +2679,7 @@ function views_ui_build_identifier($key, $view, $display_id, $args) {
   $form = views_ui_ajax_forms($key);
   // Automatically remove the single-form cache if it exists and
   // does not match the key.
-  $identifier = implode('-', array($key, $view->name, $display_id));
+  $identifier = implode('-', array($key, $view->storage->name, $display_id));
 
   foreach ($form['args'] as $id) {
     $arg = (!empty($args)) ? array_shift($args) : NULL;
@@ -2834,7 +2835,7 @@ function views_ui_ajax_form($js, $key, $view, $display_id = '') {
     }
     elseif (!$js) {
       // if nothing on the stack, non-js forms just go back to the main view editor.
-      return drupal_goto("admin/structure/views/view/$view->name/edit");
+      return drupal_goto("admin/structure/views/view/{$view->storage->name}/edit");
     }
     else {
       $output = array();
@@ -2954,7 +2955,7 @@ function views_ui_reorder_displays_form($form, &$form_state) {
     'limit' => 0,
   );
 
-  $form['#action'] = url('admin/structure/views/nojs/reorder-displays/' . $view->name . '/' . $display_id);
+  $form['#action'] = url('admin/structure/views/nojs/reorder-displays/' . $view->storage->name . '/' . $display_id);
 
   views_ui_standard_form_buttons($form, $form_state, 'views_ui_reorder_displays_form');
 
@@ -5202,7 +5203,7 @@ function theme_views_ui_style_plugin_table($variables) {
  * @todo Remove this function once editing the display title is possible.
  */
 function views_ui_get_display_label($view, $display_id, $check_changed = TRUE) {
-  $title = $display_id == 'default' ? t('Master') : $view->display[$display_id]['display_title'];
+  $title = $display_id == 'default' ? t('Master') : $view->displayHandlers[$display_id]->display['display_title'];
   $title = views_ui_truncate($title, 25);
 
   if ($check_changed && !empty($view->changed_display[$display_id])) {
@@ -5296,7 +5297,7 @@ function views_ui_field_list() {
               && $data = $data[$item['field']][$type]) {
               // The final check that we have a fieldapi field now.
               if (isset($data['field_name'])) {
-                $fields[$data['field_name']][$view->name] = $view->name;
+                $fields[$data['field_name']][$view->storage->name] = $view->storage->name;
               }
             }
           }
diff --git a/lib/Drupal/views/Plugin/views/display/DisplayPluginBase.php b/lib/Drupal/views/Plugin/views/display/DisplayPluginBase.php
index 0ca5f5d..9e78073 100644
--- a/lib/Drupal/views/Plugin/views/display/DisplayPluginBase.php
+++ b/lib/Drupal/views/Plugin/views/display/DisplayPluginBase.php
@@ -769,7 +769,7 @@ public function getPlugin($type = 'style', $name = NULL) {
 
           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 @@ public function getPlugin($type = 'style', $name = NULL) {
         $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 @@ public function optionLink($text, $section, $class = '', $title = '') {
       $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 0050f94..35e5951 100644
--- a/lib/Drupal/views/Plugin/views/display/Feed.php
+++ b/lib/Drupal/views/Plugin/views/display/Feed.php
@@ -49,7 +49,7 @@ public function init(&$view, &$display, $options = NULL) {
     // 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 e959f60..ce44ff7 100644
--- a/lib/Drupal/views/Plugin/views/display/Page.php
+++ b/lib/Drupal/views/Plugin/views/display/Page.php
@@ -80,7 +80,7 @@ public function executeHookMenu($callbacks) {
     // 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 @@ public function executeHookMenu($callbacks) {
         '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)) {
diff --git a/lib/Drupal/views/Plugin/views/pager/Full.php b/lib/Drupal/views/Plugin/views/pager/Full.php
index 78f6b09..32aae7c 100644
--- a/lib/Drupal/views/Plugin/views/pager/Full.php
+++ b/lib/Drupal/views/Plugin/views/pager/Full.php
@@ -291,7 +291,7 @@ public function query() {
   }
 
   function render($input) {
-    $pager_theme = views_theme_functions('pager', $this->view, $this->view->display[$this->view->current_display]);
+    $pager_theme = views_theme_functions('pager', $this->view, $this->view->displayHandlers[$this->view->current_display]->display);
     // The 0, 1, 3, 4 index are correct. See theme_pager documentation.
     $tags = array(
       0 => $this->options['tags']['first'],
diff --git a/lib/Drupal/views/Plugin/views/query/Sql.php b/lib/Drupal/views/Plugin/views/query/Sql.php
index c106be6..2a73bbe 100644
--- a/lib/Drupal/views/Plugin/views/query/Sql.php
+++ b/lib/Drupal/views/Plugin/views/query/Sql.php
@@ -1285,7 +1285,7 @@ public function query($get_count = FALSE) {
     $query = Database::getConnection($target, $key)
       ->select($this->base_table, $this->base_table, $options)
       ->addTag('views')
-      ->addTag('views_' . $this->view->name);
+      ->addTag('views_' . $this->view->storage->name);
 
     // Add the tags added to the view itself.
     foreach ($this->tags as $tag) {
@@ -1516,7 +1516,7 @@ function execute(&$view) {
           drupal_set_message($e->getMessage(), 'error');
         }
         else {
-          throw new DatabaseExceptionWrapper(format_string('Exception in @human_name[@view_name]: @message', array('@human_name' => $view->human_name, '@view_name' => $view->name, '@message' => $e->getMessage())));
+          throw new DatabaseExceptionWrapper(format_string('Exception in @human_name[@view_name]: @message', array('@human_name' => $view->storage->human_name, '@view_name' => $view->storage->name, '@message' => $e->getMessage())));
         }
       }
 
@@ -1647,7 +1647,7 @@ function load_entities(&$results) {
   }
 
   function add_signature(&$view) {
-    $view->query->add_field(NULL, "'" . $view->name . ':' . $view->current_display . "'", 'view_name');
+    $view->query->add_field(NULL, "'" . $view->storage->name . ':' . $view->current_display . "'", 'view_name');
   }
 
   function get_aggregation_info() {
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 @@ function testAnalyzeBasic() {
     $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 9914aec..58f9d19 100644
--- a/lib/Drupal/views/ViewExecutable.php
+++ b/lib/Drupal/views/ViewExecutable.php
@@ -514,45 +514,6 @@ public function __construct(ViewStorage $storage) {
   }
 
   /**
-   * Implements the magic __get() method.
-   *
-   * @todo Remove this once all calls are changed to use storage directly.
-   */
-  public function &__get($name) {
-    if (property_exists($this->storage, $name)) {
-      return $this->storage->{$name};
-    }
-    elseif (property_exists($this, $name)) {
-      return $this->{$name};
-    }
-  }
-
-  /**
-   * Implements the magic __set() method.
-   *
-   * @todo Remove this once all calls are changed to use storage directly.
-   */
-  public function __set($name, $value) {
-    if (property_exists($this, $name)) {
-      $this->{$name} = $value;
-    }
-    elseif (property_exists($this->storage, $name)) {
-      $this->storage->{$name} = $value;
-    }
-  }
-
-  /**
-   * Implements the magic __call() method.
-   *
-   * @todo Remove this once all calls are changed to use storage directly.
-   */
-  public function __call($name, $arguments) {
-    if (method_exists($this->storage, $name)) {
-      return call_user_func_array(array($this->storage, $name), $arguments);
-    }
-  }
-
-  /**
    * Perform automatic updates when loading or importing a view.
    *
    * Over time, some things about Views or Drupal data has changed.
@@ -726,7 +687,7 @@ public function initDisplay($reset = FALSE) {
     }
 
     // Instantiate all displays
-    foreach (array_keys($this->display) as $id) {
+    foreach (array_keys($this->storage->display) as $id) {
       $this->displayHandlers[$id] = views_get_plugin('display', $this->storage->display[$id]['display_plugin']);
       if (!empty($this->displayHandlers[$id])) {
         // Initialize the new display handler with data.
@@ -798,9 +759,9 @@ public function setDisplay($display_id = NULL) {
     }
 
     // Ensure the requested display exists.
-    if (empty($this->display[$display_id])) {
+    if (empty($this->displayHandlers[$display_id])) {
       $display_id = 'default';
-      if (empty($this->display[$display_id])) {
+      if (empty($this->displayHandlers[$display_id])) {
         debug('set_display() called with invalid display ID @display.', array('@display' => $display_id));
         return FALSE;
       }
@@ -1087,7 +1048,7 @@ public function initQuery() {
 
     // 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'];
     }
@@ -1103,7 +1064,7 @@ public function initQuery() {
       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;
   }
 
@@ -1583,7 +1544,7 @@ public function preExecute($args = array()) {
     }
 
     // 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();
@@ -1617,8 +1578,8 @@ public function attachDisplays() {
 
     $this->is_attachment = TRUE;
     // Give other displays an opportunity to attach to the view.
-    foreach ($this->display as $id => $display) {
-      if (!empty($this->display[$id])) {
+    foreach ($this->displayHandlers as $id => $display) {
+      if (!empty($this->displayHandlers[$id])) {
         $this->displayHandlers[$id]->attachTo($this->current_display);
       }
     }
diff --git a/lib/Drupal/views/ViewStorage.php b/lib/Drupal/views/ViewStorage.php
index 512174f..276d6c1 100644
--- a/lib/Drupal/views/ViewStorage.php
+++ b/lib/Drupal/views/ViewStorage.php
@@ -153,45 +153,6 @@ public function initDisplay($reset = FALSE) {
   }
 
   /**
-   * Implements the magic __call() method.
-   *
-   * @todo Remove this once all calls are changed to use executable directly.
-   */
-  public function __call($name, $arguments) {
-    if (method_exists($this->executable, $name)) {
-      return call_user_func_array(array($this->executable, $name), $arguments);
-    }
-  }
-
-  /**
-   * Implements the magic __get() method.
-   *
-   * @todo Remove this once all calls are changed to use executable directly.
-   */
-  public function &__get($name) {
-    if (property_exists($this->executable, $name)) {
-      return $this->executable->{$name};
-    }
-    if (property_exists($this, $name)) {
-      return $this->{$name};
-    }
-  }
-
-  /**
-   * Implements the magic __set() method.
-   *
-   * @todo Remove this once all calls are changed to use executable directly.
-   */
-  public function __set($name, $value) {
-    if (property_exists($this, $name)) {
-      $this->{$name} = $value;
-    }
-    elseif (property_exists($this->executable, $name)) {
-      $this->executable->{$name} = $value;
-    }
-  }
-
-  /**
    * Returns the name of the module implementing this view.
    */
   public function getModule() {
diff --git a/lib/Views/block/Plugin/views/display/Block.php b/lib/Views/block/Plugin/views/display/Block.php
index 69f25b6..937b11d 100644
--- a/lib/Views/block/Plugin/views/display/Block.php
+++ b/lib/Views/block/Plugin/views/display/Block.php
@@ -52,15 +52,15 @@ protected function defineOptions() {
    * stuff with it.
    */
   public function executeHookBlockList($delta = 0, $edit = array()) {
-    $delta = $this->view->name . '-' . $this->display['id'];
+    $delta = $this->view->storage->name . '-' . $this->display['id'];
     $desc = $this->getOption('block_description');
 
     if (empty($desc)) {
       if ($this->display['display_title'] == $this->definition['title']) {
-        $desc = t('View: !view', array('!view' => $this->view->getHumanName()));
+        $desc = t('View: !view', array('!view' => $this->view->storage->getHumanName()));
       }
       else {
-        $desc = t('View: !view: !display', array('!view' => $this->view->getHumanName(), '!display' => $this->display['display_title']));
+        $desc = t('View: !view: !display', array('!view' => $this->view->storage->getHumanName(), '!display' => $this->display['display_title']));
       }
     }
     return array(
diff --git a/theme/theme.inc b/theme/theme.inc
index 0a42b9e..075ac55 100644
--- a/theme/theme.inc
+++ b/theme/theme.inc
@@ -21,19 +21,19 @@ function _views_theme_functions($hook, $view, $display = NULL) {
   $themes = array();
 
   if ($display) {
-    $themes[] = $hook . '__' . $view->name . '__' . $display['id'];
+    $themes[] = $hook . '__' . $view->storage->name . '__' . $display['id'];
     $themes[] = $hook . '__' . $display['id'];
     // Add theme suggestions for each single tag.
-    foreach (drupal_explode_tags($view->tag) as $tag) {
+    foreach (drupal_explode_tags($view->storage->tag) as $tag) {
       $themes[] = $hook . '__' . preg_replace('/[^a-z0-9]/', '_', strtolower($tag));
     }
 
     if ($display['id'] != $display['display_plugin']) {
-      $themes[] = $hook . '__' . $view->name . '__' . $display['display_plugin'];
+      $themes[] = $hook . '__' . $view->storage->name . '__' . $display['display_plugin'];
       $themes[] = $hook . '__' . $display['display_plugin'];
     }
   }
-  $themes[] = $hook . '__' . $view->name;
+  $themes[] = $hook . '__' . $view->storage->name;
   $themes[] = $hook;
   return $themes;
 }
@@ -48,8 +48,8 @@ function template_preprocess_views_view(&$vars) {
 
   $vars['rows']       = (!empty($view->result) || $view->style_plugin->even_empty()) ? $view->style_plugin->render($view->result) : '';
 
-  $vars['css_name']   = drupal_clean_css_identifier($view->name);
-  $vars['name']       = $view->name;
+  $vars['css_name']   = drupal_clean_css_identifier($view->storage->name);
+  $vars['name']       = $view->storage->name;
   $vars['display_id'] = $view->current_display;
 
   // Basic classes
@@ -124,7 +124,7 @@ function template_preprocess_views_view(&$vars) {
         'ajax_path' => url('views/ajax'),
         'ajaxViews' => array(
           'views_dom_id:' . $vars['dom_id'] => array(
-            'view_name' => $view->name,
+            'view_name' => $view->storage->name,
             'view_display_id' => $view->current_display,
             'view_args' => check_plain(implode('/', $view->args)),
             'view_path' => check_plain(current_path()),
diff --git a/views.module b/views.module
index 7cd7ae6..8961777 100644
--- a/views.module
+++ b/views.module
@@ -131,7 +131,7 @@ function views_forms($form_id, $args) {
 function views_form_id($view) {
   $parts = array(
     'views_form',
-    $view->name,
+    $view->storage->name,
     $view->current_display,
   );
 
@@ -373,7 +373,7 @@ function views_plugin_list() {
         }
 
         // Add this view to the list for this plugin.
-        $plugins[$key]['views'][$view->name] = $view->name;
+        $plugins[$key]['views'][$view->storage->name] = $view->storage->name;
       }
     }
   }
@@ -390,11 +390,11 @@ function views_plugin_list() {
  */
 function views_preprocess_node(&$vars) {
   // The 'view' attribute of the node is added in views_preprocess_node()
-  if (!empty($vars['node']->view) && !empty($vars['node']->view->name)) {
+  if (!empty($vars['node']->view) && !empty($vars['node']->view->storage->name)) {
     $vars['view'] = $vars['node']->view;
-    $vars['theme_hook_suggestions'][] = 'node__view__' . $vars['node']->view->name;
+    $vars['theme_hook_suggestions'][] = 'node__view__' . $vars['node']->view->storage->name;
     if (!empty($vars['node']->view->current_display)) {
-      $vars['theme_hook_suggestions'][] = 'node__view__' . $vars['node']->view->name . '__' . $vars['node']->view->current_display;
+      $vars['theme_hook_suggestions'][] = 'node__view__' . $vars['node']->view->storage->name . '__' . $vars['node']->view->current_display;
 
       // If a node is being rendered in a view, and the view does not have a path,
       // prevent drupal from accidentally setting the $page variable:
@@ -416,11 +416,11 @@ function views_preprocess_node(&$vars) {
  */
 function views_preprocess_comment(&$vars) {
   // The 'view' attribute of the node is added in template_preprocess_views_view_row_comment()
-  if (!empty($vars['node']->view) && !empty($vars['node']->view->name)) {
+  if (!empty($vars['node']->view) && !empty($vars['node']->view->storage->name)) {
     $vars['view'] = &$vars['node']->view;
-    $vars['theme_hook_suggestions'][] = 'comment__view__' . $vars['node']->view->name;
+    $vars['theme_hook_suggestions'][] = 'comment__view__' . $vars['node']->view->storage->name;
     if (!empty($vars['node']->view->current_display)) {
-      $vars['theme_hook_suggestions'][] = 'comment__view__' . $vars['node']->view->name . '__' . $vars['node']->view->current_display;
+      $vars['theme_hook_suggestions'][] = 'comment__view__' . $vars['node']->view->storage->name . '__' . $vars['node']->view->current_display;
     }
   }
 }
@@ -488,6 +488,7 @@ function views_menu() {
 function views_menu_alter(&$callbacks) {
   $our_paths = array();
   $views = views_get_applicable_views('uses_hook_menu');
+  dpm($views);
   foreach ($views as $data) {
     list($view, $display_id) = $data;
     $result = $view->executeHookMenu($display_id, $callbacks);
@@ -699,7 +700,7 @@ function views_block_info() {
     }
 
     $view->initDisplay();
-    foreach ($view->displayHandlers as $display) {
+    foreach ($view->executable->displayHandlers as $display) {
 
       if (isset($display) && !empty($display->definition['uses_hook_block'])) {
         $result = $display->executeHookBlockList();
@@ -902,7 +903,7 @@ function views_add_contextual_links(&$render_element, $location, $view, $display
     // Also do not do anything if the display plugin has not defined any
     // contextual links that are intended to be displayed in the requested
     // location.
-    $plugin = views_get_plugin_definition('display', $view->display[$display_id]['display_plugin']);
+    $plugin = views_get_plugin_definition('display', $view->displayHandlers[$display_id]->display['display_plugin']);
     // If contextual_links_locations are not set, provide a sane default. (To
     // avoid displaying any contextual links at all, a display plugin can still
     // set 'contextual_links_locations' to, e.g., {""}.)
@@ -945,7 +946,7 @@ function views_add_contextual_links(&$render_element, $location, $view, $display
           $render_element['#views_contextual_links_info'][$module] = array(
             'location' => $location,
             'view' => $view,
-            'view_name' => $view->name,
+            'view_name' => $view->storage->name,
             'view_display_id' => $display_id,
           );
         }
@@ -1541,8 +1542,10 @@ function views_get_applicable_views($type) {
   $result = array();
   $views = views_get_all_views();
 
+  dpm($views);
   foreach ($views as $view) {
     $view = new ViewExecutable($view);
+    $view->initDisplay();
     // Skip disabled views.
     if (!empty($view->storage->disabled)) {
       continue;
@@ -1555,8 +1558,8 @@ function views_get_applicable_views($type) {
 
     // Loop on array keys because something seems to muck with $view->display
     // a bit in PHP4.
-    foreach (array_keys($view->display) as $id) {
-      $plugin = views_get_plugin_definition('display', $view->display[$id]['display_plugin']);
+    foreach (array_keys($view->displayHandlers) as $id) {
+      $plugin = views_get_plugin_definition('display', $view->displayHandlers[$id]->display['display_plugin']);
       if (!empty($plugin[$type])) {
         // This view uses_hook_menu. Clone it so that different handlers
         // don't trip over each other, and add it to the list.
@@ -1615,7 +1618,7 @@ function views_get_disabled_views() {
  * @param  mixed $exclude_view
  *  view or current display to exclude
  *  either a
- *  - views object (containing $exclude_view->name and $exclude_view->current_display)
+ *  - views object (containing $exclude_view->storage->name and $exclude_view->current_display)
  *  - views name as string:  e.g. my_view
  *  - views name and display id (separated by ':'): e.g. my_view:default
  * @param bool $optgroup
@@ -1648,7 +1651,7 @@ function views_get_views_as_options($views_only = FALSE, $filter = 'all', $exclu
     $exclude_view_display = '';
   }
   elseif (is_object($exclude_view)) {
-    $exclude_view_name = $exclude_view->name;
+    $exclude_view_name = $exclude_view->storage->name;
     $exclude_view_display = $exclude_view->current_display;
   }
   else {
@@ -1658,18 +1661,18 @@ function views_get_views_as_options($views_only = FALSE, $filter = 'all', $exclu
   $options = array();
   foreach ($views as $view) {
     // Return only views.
-    if ($views_only && $view->name != $exclude_view_name) {
-      $options[$view->name] = $view->getHumanName();
+    if ($views_only && $view->storage->name != $exclude_view_name) {
+      $options[$view->storage->name] = $view->getHumanName();
     }
     // Return views with display ids.
     else {
       foreach ($view->display as $display_id => $display) {
-        if (!($view->name == $exclude_view_name && $display_id == $exclude_view_display)) {
+        if (!($view->storage->name == $exclude_view_name && $display_id == $exclude_view_display)) {
           if ($optgroup) {
-            $options[$view->name][$view->name . ':' . $display['id']] = t('@view : @display', array('@view' => $view->name, '@display' => $display['id']));
+            $options[$view->storage->name][$view->storage->name . ':' . $display['id']] = t('@view : @display', array('@view' => $view->storage->name, '@display' => $display['id']));
           }
           else {
-            $options[$view->name . ':' . $display['id']] = t('View: @view - Display: @display', array('@view' => $view->name, '@display' => $display['id']));
+            $options[$view->storage->name . ':' . $display['id']] = t('View: @view - Display: @display', array('@view' => $view->storage->name, '@display' => $display['id']));
           }
         }
       }
@@ -1972,7 +1975,7 @@ function views_exposed_form($form, &$form_state) {
   // Let form plugins know this is for exposed widgets.
   $form_state['exposed'] = TRUE;
   // Check if the form was already created
-  if ($cache = views_exposed_form_cache($view->name, $view->current_display)) {
+  if ($cache = views_exposed_form_cache($view->storage->name, $view->current_display)) {
     return $cache;
   }
 
@@ -2006,12 +2009,12 @@ function views_exposed_form($form, &$form_state) {
     '#name' => '',
     '#type' => 'submit',
     '#value' => t('Apply'),
-    '#id' => drupal_html_id('edit-submit-' . $view->name),
+    '#id' => drupal_html_id('edit-submit-' . $view->storage->name),
   );
 
   $form['#action'] = url($view->display_handler->getUrl());
   $form['#theme'] = views_theme_functions('views_exposed_form', $view, $display);
-  $form['#id'] = drupal_clean_css_identifier('views_exposed_form-' . check_plain($view->name) . '-' . check_plain($display['id']));
+  $form['#id'] = drupal_clean_css_identifier('views_exposed_form-' . check_plain($view->storage->name) . '-' . check_plain($display['id']));
 //  $form['#attributes']['class'] = array('views-exposed-form');
 
   // If using AJAX, we need the form plugin.
@@ -2023,7 +2026,7 @@ function views_exposed_form($form, &$form_state) {
   $exposed_form_plugin->exposed_form_alter($form, $form_state);
 
   // Save the form
-  views_exposed_form_cache($view->name, $view->current_display, $form);
+  views_exposed_form_cache($view->storage->name, $view->current_display, $form);
 
   return $form;
 }
diff --git a/views_ui.module b/views_ui.module
index 6253090..9b66c6b 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);
     }
   }
 
@@ -346,7 +346,7 @@ function views_ui_cache_set(&$view) {
   foreach (array_keys($view->display) as $id) {
     unset($view->displayHandlers[$id]);
   }
-  views_temp_store()->set($view->name, $view);
+  views_temp_store()->set($view->storage->name, $view);
 }
 
 /**
@@ -475,13 +475,13 @@ function views_ui_view_preview_section_handler_links($view, $type, $title = FALS
     $field_name = $handler->adminLabel(TRUE);
     $links[$type . '-edit-' . $id] = array(
       'title' => t('Edit @section', array('@section' => $field_name)),
-      'href' => "admin/structure/views/nojs/config-item/$view->name/{$display['id']}/$type/$id",
+      'href' => "admin/structure/views/nojs/config-item/{$view->storage->name}/{$display['id']}/$type/$id",
       'attributes' => array('class' => array('views-ajax-link')),
     );
   }
   $links[$type . '-add'] = array(
     'title' => t('Add new'),
-    '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('views-ajax-link')),
   );
 
@@ -496,7 +496,7 @@ function views_ui_view_preview_section_display_category_links($view, $type, $tit
   $links = array(
     $type . '-edit' => array(
       'title' => t('Edit @section', array('@section' => $title)),
-      'href' => "admin/structure/views/nojs/display/$view->name/{$display['id']}/$type",
+      'href' => "admin/structure/views/nojs/display/{$view->storage->name}/{$display['id']}/$type",
       'attributes' => array('class' => array('views-ajax-link')),
     ),
   );
@@ -598,7 +598,7 @@ function views_ui_get_form_wizard_instance($wizard) {
 function views_ui_views_plugins_alter(&$plugins) {
   // @todo This currently does not work, investigate annotation alters.
   // Attach contextual links to each display plugin. The links will point to
-  // paths underneath "admin/structure/views/view/{$view->name}" (i.e., paths
+  // paths underneath "admin/structure/views/view/{$view->storage->name}" (i.e., paths
   // for editing and performing other contextual actions on the view).
   foreach ($plugins['display'] as &$display) {
     $display['contextual links']['views_ui'] = array(
diff --git a/views_ui_listing/views_ui_listing.module b/views_ui_listing/views_ui_listing.module
index 34a926f..bb08f93 100644
--- a/views_ui_listing/views_ui_listing.module
+++ b/views_ui_listing/views_ui_listing.module
@@ -63,7 +63,7 @@ function views_ui_listing_entity_listing_page($entity_id) {
  */
 function views_ui_listing_ajax_callback(EntityListControllerInterface $controller, ViewExecutable $entity, $op) {
   // Perform the operation.
-  $entity->$op();
+  $entity->storage->$op();
 
   // If the request is via AJAX, return the rendered list as JSON.
   if (drupal_container()->get('request')->request->get('js')) {
