diff --git a/README.txt b/README.txt
index 84c68dd..3d8578a 100644
--- a/README.txt
+++ b/README.txt
@@ -18,7 +18,7 @@ How to use this module
 2. Visit /elections to view the list of elections. You can add/edit/delete
    elections from here.
 3. Visit /admin/people/permissions to configure permissions.
-4. Visit /admin/config/election to configure fields and display settings.
+4. Visit /admin/structure/elections to configure fields and display settings.
 
 There are several optional sub-modules you can also enable, providing further
 functionality, including Election Condition, Election Statistics, Election
diff --git a/election.admin.inc b/election.admin.inc
index 4082258..01d22e3 100644
--- a/election.admin.inc
+++ b/election.admin.inc
@@ -5,6 +5,27 @@
  */
 
 /**
+ * Administrative page callback listing elections.
+ */
+function election_page_admin_list() {
+  // If the user is a site administrator, and there are no election type modules
+  // enabled, prompt them to enable at least one.
+  if (user_access('create elections') && user_access('administer modules')) {
+    $types = election_types();
+    if (!count($types)) {
+      drupal_set_message(t("You need to enable an 'election type' module (see !Modules) in order to add elections.", array(
+        '!Modules' => l(t('Modules'), 'admin/modules', array('fragment' => 'election_types')),
+      )), 'warning');
+    }
+  }
+
+  // Embed the View that lists elections.
+  $view = views_get_view('elections_admin');
+  $view->override_path = current_path();
+  return $view->preview('embed');
+}
+
+/**
  * Page callback for editing an election, path: election/%election/edit.
  *
  * @param object $election
diff --git a/election.info b/election.info
index 26beac7..f1ac275 100644
--- a/election.info
+++ b/election.info
@@ -5,9 +5,10 @@ core = 7.x
 dependencies[] = entity
 dependencies[] = views
 dependencies[] = date
+dependencies[] = views_bulk_operations
 recommends[] = pathauto
 recommends[] = rules
-configure = admin/config/election
+configure = admin/structure/elections
 stylesheets[all][] = election.css
 files[] = views/handlers/election_views_handler_argument_election_id.inc
 files[] = views/handlers/election_views_handler_argument_type.inc
diff --git a/election.module b/election.module
index ddfad8b..e812154 100644
--- a/election.module
+++ b/election.module
@@ -49,8 +49,8 @@ function election_entity_info() {
     $entities['election']['bundles'][$type_machine_name] = array(
       'label' => drupal_ucfirst($type['name']),
       'admin' => array(
-        'path' => 'admin/config/election/' . $type_machine_name,
-        'real path' => 'admin/config/election/' . $type_machine_name,
+        'path' => 'admin/structure/elections/' . $type_machine_name,
+        'real path' => 'admin/structure/elections/' . $type_machine_name,
         'bundle argument' => 3,
         'access arguments' => array('administer elections'),
       ),
@@ -316,36 +316,36 @@ function election_menu() {
 
   $items = array();
 
-  $items['elections'] = array(
+  $items['admin/structure/elections'] = array(
     'title' => 'Elections',
-    'page callback' => 'election_page_list',
-    'file' => 'election.pages.inc',
-    'access arguments' => array('view published elections'),
-  );
-
-  $items['admin/config/election'] = array(
-    'title' => 'Elections',
-    'description' => 'Administer elections.',
+    'description' => 'Manage election field and display settings.',
     'page callback' => 'system_admin_menu_block_page',
     'file' => 'system.admin.inc',
     'file path' => drupal_get_path('module', 'system'),
     'access arguments' => array('administer elections'),
-    'weight' => 1,
+  );
+  
+  $items['admin/content/elections'] = array(
+    'title' => 'Elections',
+    'page callback' => 'election_page_admin_list',
+    'file' => 'election.admin.inc',
+    'access arguments' => array('create elections'),
+    'type' => MENU_LOCAL_TASK | MENU_NORMAL_ITEM,
   );
 
   foreach (election_types() as $type_machine_name => $type) {
-    $items['elections/add/' . $type_machine_name] = array(
+    $items['admin/content/elections/add/' . $type_machine_name] = array(
       'title' => 'Add new @type',
       'title arguments' => array('@type' => $type['name']),
       'page callback' => 'election_page_add',
-      'page arguments' => array(2),
+      'page arguments' => array(4),
       'access arguments' => array('create elections'),
       'file' => 'election.admin.inc',
       'description' => empty($type['description']) ? '' : $type['description'],
       'type' => MENU_LOCAL_ACTION,
       'weight' => isset($type['weight']) ? $type['weight'] : 0,
     );
-    $items['admin/config/election/' . $type_machine_name] = array(
+    $items['admin/structure/elections/' . $type_machine_name] = array(
       'title' => '@type settings',
       'title arguments' => array('@type' => drupal_ucfirst($type['name'])),
       'page callback' => 'system_admin_menu_block_page',
@@ -403,7 +403,7 @@ function election_menu() {
 function election_menu_alter(&$items) {
   // Change the types of automatic Field UI menu items for a clearer admin UI.
   foreach (election_types() as $type_machine_name => $type) {
-    $path = 'admin/config/election/' . $type_machine_name;
+    $path = 'admin/structure/elections/' . $type_machine_name;
     unset($items[$path . '/settings']);
     $items[$path . '/fields']['weight'] = -2;
     $items[$path . '/fields']['type'] = MENU_NORMAL_ITEM;
diff --git a/election.pages.inc b/election.pages.inc
deleted file mode 100644
index c230ad9..0000000
--- a/election.pages.inc
+++ /dev/null
@@ -1,28 +0,0 @@
-<?php
-/**
- * @file
- * Menu callbacks for the Election module.
- */
-
-/**
- * Page callback for listing elections.
- */
-function election_page_list() {
-  drupal_set_title(t('Elections'), PASS_THROUGH);
-
-  // If the user is a site administrator, and there are no election type modules
-  // enabled, prompt them to enable at least one.
-  if (user_access('create elections') && user_access('administer modules')) {
-    $types = election_types();
-    if (!count($types)) {
-      drupal_set_message(t("You need to enable an 'election type' module (see !Modules) in order to add elections.", array(
-        '!Modules' => l(t('Modules'), 'admin/modules', array('fragment' => 'election_types')),
-      )), 'warning');
-    }
-  }
-
-  // Embed the View that lists elections.
-  $view = views_get_view('elections');
-  $view->override_path = current_path();
-  return $view->preview('embed');
-}
diff --git a/election_candidate/election_candidate.info b/election_candidate/election_candidate.info
index fd936cb..5fbff93 100644
--- a/election_candidate/election_candidate.info
+++ b/election_candidate/election_candidate.info
@@ -2,10 +2,9 @@ name = Election Candidate
 description = "Allows elections to have candidates."
 package = Election
 core = 7.x
-configure = admin/config/election/candidate-types
+configure = admin/structure/elections/candidate-types
 dependencies[] = election
 dependencies[] = election_post
-dependencies[] = views_bulk_operations
 dependencies[] = name
 dependencies[] = email
 files[] = election-candidate-type.inc
diff --git a/election_candidate/election_candidate.module b/election_candidate/election_candidate.module
index 77d760a..7c122ab 100644
--- a/election_candidate/election_candidate.module
+++ b/election_candidate/election_candidate.module
@@ -64,7 +64,7 @@ function election_candidate_entity_info() {
     'access callback' => 'election_candidate_type_access',
     'module' => 'election_candidate',
     'admin ui' => array(
-      'path' => 'admin/config/election/candidate-types',
+      'path' => 'admin/structure/elections/candidate-types',
       'file' => 'election_candidate_type.admin.inc',
       'controller class' => 'ElectionCandidateTypeUIController',
     ),
@@ -84,8 +84,8 @@ function election_candidate_entity_info_alter(&$entity_info) {
     $entity_info['election_candidate']['bundles'][$type] = array(
       'label' => $info->label,
       'admin' => array(
-        'path' => 'admin/config/election/candidate-types/manage/%election_candidate_type',
-        'real path' => 'admin/config/election/candidate-types/manage/' . $type,
+        'path' => 'admin/structure/elections/candidate-types/manage/%election_candidate_type',
+        'real path' => 'admin/structure/elections/candidate-types/manage/' . $type,
         'bundle argument' => 5,
         'access arguments' => array('administer candidate types'),
       ),
@@ -652,7 +652,7 @@ function election_candidate_form_election_post_form_alter(&$form, &$form_state)
     $form['candidates_nominations']['settings_candidate_type']['#description'] .= ' '
       . l(
         t('Manage candidate types'),
-        'admin/config/election/candidate-types',
+        'admin/structure/elections/candidate-types',
         array(
           'attributes' => array('target' => '_blank'),
         )
diff --git a/election_candidate/election_candidate_type.admin.inc b/election_candidate/election_candidate_type.admin.inc
index 5f3ce68..ed61af4 100644
--- a/election_candidate/election_candidate_type.admin.inc
+++ b/election_candidate/election_candidate_type.admin.inc
@@ -81,12 +81,12 @@ function election_candidate_type_form_submit(&$form, &$form_state) {
     }
   }
 
-  $form_state['redirect'] = 'admin/config/election/candidate-types';
+  $form_state['redirect'] = 'admin/structure/elections/candidate-types';
 }
 
 /**
  * Form API submit callback for the delete button on the candidate type form.
  */
 function election_candidate_type_form_submit_delete(&$form, &$form_state) {
-  $form_state['redirect'] = 'admin/config/election/candidate-types/' . $form_state['candidate_type']->type . '/delete';
+  $form_state['redirect'] = 'admin/structure/elections/candidate-types/' . $form_state['candidate_type']->type . '/delete';
 }
diff --git a/election_post/election_post.module b/election_post/election_post.module
index 7f0ab88..323a3cc 100644
--- a/election_post/election_post.module
+++ b/election_post/election_post.module
@@ -30,7 +30,7 @@ function election_post_menu() {
     $post_machine_name = $type['post machine name'];
     $post_name = election_get_post_name($type_machine_name);
     $post_name_plural = election_get_post_name($type_machine_name, TRUE);
-    $items['admin/config/election/' . $type_machine_name . '/' . $post_machine_name] = array(
+    $items['admin/structure/elections/' . $type_machine_name . '/' . $post_machine_name] = array(
       'title' => '@post settings',
       'title arguments' => array('@post' => drupal_ucfirst($post_name)),
       'page callback' => 'system_admin_menu_block_page',
@@ -114,7 +114,7 @@ function election_post_menu() {
 function election_post_menu_alter(&$items) {
   // Change the types of automatic Field UI menu items for a clearer admin UI.
   foreach (election_types() as $type_machine_name => $type) {
-    $path = 'admin/config/election/' . $type_machine_name;
+    $path = 'admin/structure/elections/' . $type_machine_name;
     $post_machine_name = $type['post machine name'];
     $post_name_plural = election_get_post_name($type_machine_name, TRUE);
     $items[$path . '/' . $post_machine_name]['type'] = MENU_NORMAL_ITEM;
@@ -183,8 +183,8 @@ function election_post_entity_info() {
     $entities['election_post']['bundles'][$post_machine_name] = array(
       'label' => drupal_ucfirst($post_name),
       'admin' => array(
-        'path' => 'admin/config/election/' . $type_machine_name . '/' . $post_machine_name,
-        'real path' => 'admin/config/election/' . $type_machine_name . '/' . $post_machine_name,
+        'path' => 'admin/structure/elections/' . $type_machine_name . '/' . $post_machine_name,
+        'real path' => 'admin/structure/elections/' . $type_machine_name . '/' . $post_machine_name,
         'bundle argument' => 4,
         'access arguments' => array('administer elections'),
       ),
diff --git a/views/all-elections.inc b/views/all-elections.inc
index 707de80..2e0c19a 100644
--- a/views/all-elections.inc
+++ b/views/all-elections.inc
@@ -49,8 +49,13 @@ $handler->display->display_options['filters']['published_or_admin']['id'] = 'pub
 $handler->display->display_options['filters']['published_or_admin']['table'] = 'election';
 $handler->display->display_options['filters']['published_or_admin']['field'] = 'published_or_admin';
 
-/* Display: Embed */
-$handler = $view->new_display('embed', 'Embed', 'embed');
-$handler->display->display_options['defaults']['hide_admin_links'] = FALSE;
+/* Display: Page */
+$handler = $view->new_display('page', 'Page', 'page_1');
+$handler->display->display_options['path'] = 'elections';
+$handler->display->display_options['menu']['type'] = 'normal';
+$handler->display->display_options['menu']['title'] = 'Elections';
+$handler->display->display_options['menu']['weight'] = '0';
+$handler->display->display_options['menu']['context'] = 0;
+$handler->display->display_options['menu']['context_only_inline'] = 0;
 
 $views[$view->name] = $view;
diff --git a/views/elections-admin.inc b/views/elections-admin.inc
new file mode 100644
index 0000000..cc2544e
--- /dev/null
+++ b/views/elections-admin.inc
@@ -0,0 +1,231 @@
+<?php
+/**
+ * @file
+ * View listing all elections for administrative use.
+ */
+
+$view = new view();
+$view->name = 'elections_admin';
+$view->description = 'An administrative list of elections';
+$view->tag = 'election';
+$view->base_table = 'election';
+$view->human_name = 'Elections (admin)';
+$view->core = 7;
+$view->api_version = '3.0';
+$view->disabled = FALSE; /* Edit this to true to make a default view disabled initially */
+
+/* Display: Master */
+$handler = $view->new_display('default', 'Master', 'default');
+$handler->display->display_options['title'] = 'Elections';
+$handler->display->display_options['use_more_always'] = FALSE;
+$handler->display->display_options['access']['type'] = 'perm';
+$handler->display->display_options['access']['perm'] = 'create elections';
+$handler->display->display_options['cache']['type'] = 'none';
+$handler->display->display_options['query']['type'] = 'views_query';
+$handler->display->display_options['query']['options']['distinct'] = TRUE;
+$handler->display->display_options['query']['options']['slave'] = TRUE;
+$handler->display->display_options['query']['options']['query_comment'] = FALSE;
+$handler->display->display_options['exposed_form']['type'] = 'basic';
+$handler->display->display_options['pager']['type'] = 'full';
+$handler->display->display_options['pager']['options']['items_per_page'] = '10';
+$handler->display->display_options['style_plugin'] = 'table';
+$handler->display->display_options['style_options']['columns'] = array(
+  'views_bulk_operations' => 'views_bulk_operations',
+  'created' => 'created',
+  'changed' => 'changed',
+  'title' => 'title',
+  'type' => 'type',
+  'published' => 'published',
+  'vstatus' => 'vstatus',
+);
+$handler->display->display_options['style_options']['default'] = 'created';
+$handler->display->display_options['style_options']['info'] = array(
+  'views_bulk_operations' => array(
+    'align' => '',
+    'separator' => '',
+    'empty_column' => 0,
+  ),
+  'created' => array(
+    'sortable' => 1,
+    'default_sort_order' => 'desc',
+    'align' => '',
+    'separator' => '',
+    'empty_column' => 0,
+  ),
+  'changed' => array(
+    'sortable' => 1,
+    'default_sort_order' => 'desc',
+    'align' => '',
+    'separator' => '',
+    'empty_column' => 0,
+  ),
+  'title' => array(
+    'sortable' => 1,
+    'default_sort_order' => 'asc',
+    'align' => '',
+    'separator' => '',
+    'empty_column' => 0,
+  ),
+  'type' => array(
+    'sortable' => 1,
+    'default_sort_order' => 'asc',
+    'align' => '',
+    'separator' => '',
+    'empty_column' => 0,
+  ),
+  'published' => array(
+    'sortable' => 1,
+    'default_sort_order' => 'asc',
+    'align' => '',
+    'separator' => '',
+    'empty_column' => 0,
+  ),
+  'vstatus' => array(
+    'align' => '',
+    'separator' => '',
+    'empty_column' => 1,
+  ),
+);
+/* Header: Global: Result summary */
+$handler->display->display_options['header']['result']['id'] = 'result';
+$handler->display->display_options['header']['result']['table'] = 'views';
+$handler->display->display_options['header']['result']['field'] = 'result';
+/* No results behavior: Global: Text area */
+$handler->display->display_options['empty']['area']['id'] = 'area';
+$handler->display->display_options['empty']['area']['table'] = 'views';
+$handler->display->display_options['empty']['area']['field'] = 'area';
+$handler->display->display_options['empty']['area']['label'] = 'There are no elections to display';
+$handler->display->display_options['empty']['area']['content'] = 'There are no elections to display.';
+$handler->display->display_options['empty']['area']['format'] = 'filtered_html';
+/* Field: Bulk operations: Election */
+$handler->display->display_options['fields']['views_bulk_operations']['id'] = 'views_bulk_operations';
+$handler->display->display_options['fields']['views_bulk_operations']['table'] = 'election';
+$handler->display->display_options['fields']['views_bulk_operations']['field'] = 'views_bulk_operations';
+$handler->display->display_options['fields']['views_bulk_operations']['label'] = '';
+$handler->display->display_options['fields']['views_bulk_operations']['element_label_colon'] = FALSE;
+$handler->display->display_options['fields']['views_bulk_operations']['vbo_settings']['display_type'] = '0';
+$handler->display->display_options['fields']['views_bulk_operations']['vbo_settings']['enable_select_all_pages'] = 1;
+$handler->display->display_options['fields']['views_bulk_operations']['vbo_settings']['force_single'] = 0;
+$handler->display->display_options['fields']['views_bulk_operations']['vbo_settings']['entity_load_capacity'] = '10';
+$handler->display->display_options['fields']['views_bulk_operations']['vbo_operations'] = array(
+  'action::views_bulk_operations_delete_item' => array(
+    'selected' => 1,
+    'postpone_processing' => 0,
+    'skip_confirmation' => 0,
+    'override_label' => 0,
+    'label' => '',
+  ),
+  'action::views_bulk_operations_delete_revision' => array(
+    'selected' => 0,
+    'postpone_processing' => 0,
+    'skip_confirmation' => 0,
+    'override_label' => 0,
+    'label' => '',
+  ),
+  'action::views_bulk_operations_script_action' => array(
+    'selected' => 0,
+    'postpone_processing' => 0,
+    'skip_confirmation' => 0,
+    'override_label' => 0,
+    'label' => '',
+  ),
+  'action::views_bulk_operations_modify_action' => array(
+    'selected' => 1,
+    'postpone_processing' => 0,
+    'skip_confirmation' => 0,
+    'override_label' => 0,
+    'label' => '',
+    'settings' => array(
+      'show_all_tokens' => 0,
+      'display_values' => array(
+        '_all_' => '_all_',
+      ),
+    ),
+  ),
+  'action::views_bulk_operations_argument_selector_action' => array(
+    'selected' => 0,
+    'skip_confirmation' => 0,
+    'override_label' => 0,
+    'label' => '',
+    'settings' => array(
+      'url' => '',
+    ),
+  ),
+  'action::system_send_email_action' => array(
+    'selected' => 0,
+    'postpone_processing' => 0,
+    'skip_confirmation' => 0,
+    'override_label' => 0,
+    'label' => '',
+  ),
+);
+/* Field: Election: Created date */
+$handler->display->display_options['fields']['created']['id'] = 'created';
+$handler->display->display_options['fields']['created']['table'] = 'election';
+$handler->display->display_options['fields']['created']['field'] = 'created';
+$handler->display->display_options['fields']['created']['label'] = 'Created';
+$handler->display->display_options['fields']['created']['date_format'] = 'short';
+/* Field: Election: Title */
+$handler->display->display_options['fields']['title']['id'] = 'title';
+$handler->display->display_options['fields']['title']['table'] = 'election';
+$handler->display->display_options['fields']['title']['field'] = 'title';
+$handler->display->display_options['fields']['title']['link_to_election'] = 1;
+/* Field: Election: Type */
+$handler->display->display_options['fields']['type']['id'] = 'type';
+$handler->display->display_options['fields']['type']['table'] = 'election';
+$handler->display->display_options['fields']['type']['field'] = 'type';
+$handler->display->display_options['fields']['type']['machine_name'] = 0;
+/* Field: Election: Published */
+$handler->display->display_options['fields']['published']['id'] = 'published';
+$handler->display->display_options['fields']['published']['table'] = 'election';
+$handler->display->display_options['fields']['published']['field'] = 'published';
+$handler->display->display_options['fields']['published']['not'] = 0;
+/* Sort criterion: Election: Created date */
+$handler->display->display_options['sorts']['created']['id'] = 'created';
+$handler->display->display_options['sorts']['created']['table'] = 'election';
+$handler->display->display_options['sorts']['created']['field'] = 'created';
+$handler->display->display_options['sorts']['created']['order'] = 'DESC';
+$handler->display->display_options['sorts']['created']['expose']['label'] = 'Created date';
+/* Filter criterion: Election: Published or admin */
+$handler->display->display_options['filters']['published_or_admin']['id'] = 'published_or_admin';
+$handler->display->display_options['filters']['published_or_admin']['table'] = 'election';
+$handler->display->display_options['filters']['published_or_admin']['field'] = 'published_or_admin';
+$handler->display->display_options['filters']['published_or_admin']['group'] = 1;
+/* Filter criterion: Election: Title */
+$handler->display->display_options['filters']['title']['id'] = 'title';
+$handler->display->display_options['filters']['title']['table'] = 'election';
+$handler->display->display_options['filters']['title']['field'] = 'title';
+$handler->display->display_options['filters']['title']['operator'] = 'allwords';
+$handler->display->display_options['filters']['title']['group'] = 1;
+$handler->display->display_options['filters']['title']['exposed'] = TRUE;
+$handler->display->display_options['filters']['title']['expose']['operator_id'] = 'title_op';
+$handler->display->display_options['filters']['title']['expose']['label'] = 'Title';
+$handler->display->display_options['filters']['title']['expose']['operator'] = 'title_op';
+$handler->display->display_options['filters']['title']['expose']['identifier'] = 'title';
+$handler->display->display_options['filters']['title']['expose']['remember_roles'] = array(
+  2 => '2',
+  1 => 0,
+  3 => 0,
+);
+/* Filter criterion: Election: Published */
+$handler->display->display_options['filters']['published']['id'] = 'published';
+$handler->display->display_options['filters']['published']['table'] = 'election';
+$handler->display->display_options['filters']['published']['field'] = 'published';
+$handler->display->display_options['filters']['published']['value'] = 'All';
+$handler->display->display_options['filters']['published']['group'] = 1;
+$handler->display->display_options['filters']['published']['exposed'] = TRUE;
+$handler->display->display_options['filters']['published']['expose']['operator_id'] = '';
+$handler->display->display_options['filters']['published']['expose']['label'] = 'Published';
+$handler->display->display_options['filters']['published']['expose']['operator'] = 'published_op';
+$handler->display->display_options['filters']['published']['expose']['identifier'] = 'published';
+$handler->display->display_options['filters']['published']['expose']['remember_roles'] = array(
+  2 => '2',
+  1 => 0,
+  3 => 0,
+);
+
+/* Display: Embed */
+$handler = $view->new_display('embed', 'Embed', 'embed');
+$handler->display->display_options['defaults']['hide_admin_links'] = FALSE;
+
+$views[$view->name] = $view;
