diff --git a/core/lib/Drupal/Core/Field/Plugin/Field/FieldFormatter/NumericUnformattedFormatter.php b/core/lib/Drupal/Core/Field/Plugin/Field/FieldFormatter/NumericUnformattedFormatter.php
index 55d9dbf..07b7d2e 100644
--- a/core/lib/Drupal/Core/Field/Plugin/Field/FieldFormatter/NumericUnformattedFormatter.php
+++ b/core/lib/Drupal/Core/Field/Plugin/Field/FieldFormatter/NumericUnformattedFormatter.php
@@ -17,6 +17,7 @@
  *   id = "number_unformatted",
  *   label = @Translation("Unformatted"),
  *   field_types = {
+ *     "boolean",
  *     "integer",
  *     "decimal",
  *     "float"
diff --git a/core/lib/Drupal/Core/Field/Plugin/Field/FieldType/BooleanItem.php b/core/lib/Drupal/Core/Field/Plugin/Field/FieldType/BooleanItem.php
index 14d0f83..2e345ac 100644
--- a/core/lib/Drupal/Core/Field/Plugin/Field/FieldType/BooleanItem.php
+++ b/core/lib/Drupal/Core/Field/Plugin/Field/FieldType/BooleanItem.php
@@ -7,6 +7,8 @@
 
 namespace Drupal\Core\Field\Plugin\Field\FieldType;
 
+use Drupal\Component\Utility\NestedArray;
+use Drupal\Core\Field\FieldDefinitionInterface;
 use Drupal\Core\Field\FieldItemBase;
 use Drupal\Core\Field\FieldStorageDefinitionInterface;
 use Drupal\Core\TypedData\DataDefinition;
@@ -18,7 +20,8 @@
  *   id = "boolean",
  *   label = @Translation("Boolean"),
  *   description = @Translation("An entity field containing a boolean value."),
- *   no_ui = TRUE
+ *   default_widget = "boolean",
+ *   default_formatter = "number_unformatted",
  * )
  */
 class BooleanItem extends FieldItemBase {
@@ -26,6 +29,16 @@ class BooleanItem extends FieldItemBase {
   /**
    * {@inheritdoc}
    */
+  public static function defaultSettings() {
+    return array(
+      'allowed_values' => array(0, 1),
+      'allowed_values_function' => '',
+    ) + parent::defaultSettings();
+  }
+
+  /**
+   * {@inheritdoc}
+   */
   public static function propertyDefinitions(FieldStorageDefinitionInterface $field_definition) {
     $properties['value'] = DataDefinition::create('boolean')
       ->setLabel(t('Boolean value'));
@@ -48,4 +61,68 @@ public static function schema(FieldStorageDefinitionInterface $field_definition)
     );
   }
 
+  /**
+   * {@inheritdoc}
+   */
+  public function settingsForm(array &$form, array &$form_state, $has_data) {
+    $allowed_values = $this->getSetting('allowed_values');
+    $allowed_values_function = $this->getSetting('allowed_values_function');
+
+    $values = $allowed_values;
+    $off_value = array_shift($values);
+    $on_value = array_shift($values);
+
+    $element['allowed_values'] = array(
+      '#type' => 'value',
+      '#description' => '',
+      '#value_callback' => array(get_class($this), 'getAllowedValues'),
+      '#access' => empty($allowed_values_function),
+    );
+    $element['allowed_values']['on'] = array(
+      '#type' => 'textfield',
+      '#title' => t('On value'),
+      '#default_value' => $on_value,
+      '#required' => FALSE,
+      '#description' => t('If left empty, "1" will be used.'),
+      // Change #parents to make sure the element is not saved into field
+      // settings.
+      '#parents' => array('on'),
+    );
+    $element['allowed_values']['off'] = array(
+      '#type' => 'textfield',
+      '#title' => t('Off value'),
+      '#default_value' => $off_value,
+      '#required' => FALSE,
+      '#description' => t('If left empty, "0" will be used.'),
+      // Change #parents to make sure the element is not saved into field
+      // settings.
+      '#parents' => array('off'),
+    );
+
+    // Link the allowed value to the on / off elements to prepare for the rare
+    // case of an alter changing #parents.
+    $element['allowed_values']['#on_parents'] = &$element['allowed_values']['on']['#parents'];
+    $element['allowed_values']['#off_parents'] = &$element['allowed_values']['off']['#parents'];
+
+    $element['allowed_values_function'] = array(
+      '#type' => 'item',
+      '#title' => t('Allowed values list'),
+      '#markup' => t('The value of this field is being determined by the %function function and may not be changed.', array('%function' => $allowed_values_function)),
+      '#access' => !empty($allowed_values_function),
+      '#value' => $allowed_values_function,
+    );
+
+    return $element;
+  }
+
+  /**
+   * Form element #value_callback: assembles the allowed values for 'boolean'
+   * fields.
+   */
+  public static function getAllowedValues($element, $input, $form_state) {
+    $on = NestedArray::getValue($form_state['input'], $element['#on_parents']);
+    $off = NestedArray::getValue($form_state['input'], $element['#off_parents']);
+    return array($off, $on);
+  }
+
 }
diff --git a/core/lib/Drupal/Core/Field/Plugin/Field/FieldWidget/BooleanWidget.php b/core/lib/Drupal/Core/Field/Plugin/Field/FieldWidget/BooleanWidget.php
new file mode 100644
index 0000000..385e451
--- /dev/null
+++ b/core/lib/Drupal/Core/Field/Plugin/Field/FieldWidget/BooleanWidget.php
@@ -0,0 +1,105 @@
+<?php
+
+/**
+ * @file
+ * Contains \Drupal\Core\Field\Plugin\Field\FieldWidget\BooleanWidget.
+ */
+
+namespace Drupal\Core\Field\Plugin\Field\FieldWidget;
+
+use Drupal\Core\Field\FieldItemListInterface;
+use Drupal\Core\Field\WidgetBase;
+
+/**
+ * Plugin implementation of the 'options_buttons' widget.
+ *
+ * @FieldWidget(
+ *   id = "boolean",
+ *   label = @Translation("Check boxes/radio buttons"),
+ *   field_types = {
+ *     "boolean",
+ *   },
+ *   multiple_values = TRUE
+ * )
+ */
+class BooleanWidget extends WidgetBase {
+
+  /**
+   * {@inheritdoc}
+   */
+  public function formElement(FieldItemListInterface $items, $delta, array $element, array &$form, array &$form_state) {
+    $options = array();
+    if (!$this->fieldDefinition->isRequired() && !$this->fieldDefinition->getFieldStorageDefinition()->isMultiple()) {
+      $options = array('_none' => t('N/A'));
+    }
+    $options += $items->getFieldDefinition()->getSetting('allowed_values');
+    $selected_options = array();
+    foreach ($items as $item) {
+      $value = $item->value;
+      // Keep the value if it actually is in the list of options (needs to be
+      // checked against the flat list).
+      if (isset($options[$value])) {
+        $selected_options[] = $value;
+      }
+    }
+
+    if ($this->fieldDefinition->getFieldStorageDefinition()->isMultiple()) {
+      // If required and there is one single option, preselect it.
+      $element['value'] = $element + array(
+        '#type' => 'checkboxes',
+        '#default_value' => $selected_options,
+        '#options' => $options,
+      );
+    }
+    else {
+      $element['value'] = $element + array(
+        '#type' => 'radios',
+        // Radio buttons need a scalar value. Take the first default value, or
+        // default to NULL so that the form element is properly recognized as
+        // not having a default value.
+        '#default_value' => $selected_options ? reset($selected_options) : NULL,
+        '#options' => $options,
+      );
+    }
+
+    $element['#element_validate'][] = array(get_class($this), 'validateElement');
+
+    return $element;
+  }
+
+  /**
+   * Form validation handler for boolean widget elements.
+   *
+   * @param array $element
+   *   The form element.
+   * @param array $form_state
+   *   The form state.
+   */
+  public static function validateElement(array $element, array &$form_state) {
+    if ($element['#required'] && $element['#value'] == '_none') {
+      \Drupal::formBuilder()->setError($element, $form_state, t('!name field is required.', array('!name' => $element['#title'])));
+    }
+
+    if (is_array($element['value']['#value'])) {
+      $values = array_values($element['value']['#value']);
+    }
+    else {
+      $values = array($element['value']['#value']);
+    }
+
+    // Filter out the 'none' option. Use a strict comparison, because
+    // 0 == 'any string'.
+    $index = array_search('_none', $values, TRUE);
+    if ($index !== FALSE) {
+      unset($values[$index]);
+    }
+
+    // Transpose selections from field => delta to delta => field.
+    $items = array();
+    foreach ($values as $value) {
+      $items[] = array('value' => $value);
+    }
+    \Drupal::formBuilder()->setValue($element, $items, $form_state);
+  }
+
+}
diff --git a/core/modules/options/src/Plugin/Field/FieldWidget/OnOffWidget.php b/core/lib/Drupal/Core/Field/Plugin/Field/FieldWidget/OnOffWidget.php
similarity index 71%
rename from core/modules/options/src/Plugin/Field/FieldWidget/OnOffWidget.php
rename to core/lib/Drupal/Core/Field/Plugin/Field/FieldWidget/OnOffWidget.php
index 731f3b2..08236c4 100644
--- a/core/modules/options/src/Plugin/Field/FieldWidget/OnOffWidget.php
+++ b/core/lib/Drupal/Core/Field/Plugin/Field/FieldWidget/OnOffWidget.php
@@ -2,22 +2,22 @@
 
 /**
  * @file
- * Contains \Drupal\options\Plugin\Field\FieldWidget\OnOffWidget.
+ * Contains \Drupal\Core\Field\Plugin\Field\FieldWidget\OnOffWidget.
  */
 
-namespace Drupal\options\Plugin\Field\FieldWidget;
+namespace Drupal\Core\Field\Plugin\Field\FieldWidget;
 
 use Drupal\Core\Field\FieldItemListInterface;
 use Drupal\options\Plugin\Field\FieldWidget\OptionsWidgetBase;
 
 /**
- * Plugin implementation of the 'options_onoff' widget.
+ * Plugin implementation of the 'boolean_onoff' widget.
  *
  * @FieldWidget(
- *   id = "options_onoff",
+ *   id = "boolean_onoff",
  *   label = @Translation("Single on/off checkbox"),
  *   field_types = {
- *     "list_boolean"
+ *     "boolean"
  *   },
  *   multiple_values = TRUE
  * )
@@ -62,22 +62,19 @@ public function settingsSummary() {
    * {@inheritdoc}
    */
   public function formElement(FieldItemListInterface $items, $delta, array $element, array &$form, array &$form_state) {
-    $element = parent::formElement($items, $delta, $element, $form, $form_state);
+    $options = $items->getFieldDefinition()->getSetting('allowed_values');
 
-    $options = $this->getOptions($items[$delta]);
-    $selected = $this->getSelectedOptions($items);
-
-    $element += array(
+    $element['value'] = $element + array(
       '#type' => 'checkbox',
-      '#default_value' => !empty($selected[0]),
+      '#default_value' => !empty($items[0]->value),
     );
 
     // Override the title from the incoming $element.
     if ($this->getSetting('display_label')) {
-      $element['#title'] = $this->fieldDefinition->getLabel();
+      $element['value']['#title'] = $this->fieldDefinition->getLabel();
     }
     else {
-      $element['#title'] = isset($options[1]) ? $options[1] : '';
+      $element['value']['#title'] = isset($options[1]) ? $options[1] : '';
     }
 
     return $element;
diff --git a/core/modules/field/config/schema/field.schema.yml b/core/modules/field/config/schema/field.schema.yml
index 7018b5f..3e3ca44 100644
--- a/core/modules/field/config/schema/field.schema.yml
+++ b/core/modules/field/config/schema/field.schema.yml
@@ -97,6 +97,37 @@ entity_form_display.field.hidden:
       sequence:
         - type: string
 
+# Schema for the configuration files of the Boolean field type.
+field.boolean.settings:
+  type: mapping
+  label: 'List (boolean) settings'
+  mapping:
+    allowed_values:
+      type: sequence
+      label: 'Allowed values list'
+      sequence:
+        - type: string
+          label: 'Value'
+    allowed_values_function:
+      type: string
+      label: 'Allowed values function'
+
+field.boolean.instance_settings:
+  label: 'List (boolean)'
+  type: mapping
+  mapping: {  }
+
+field.boolean.value:
+  type: sequence
+  label: 'Default value'
+  sequence:
+    - type: mapping
+      label: 'Default'
+      mapping:
+        value:
+          type: boolean
+          label: 'Value'
+
 # Schema for the configuration files of the Email field type.
 
 field.email.settings:
diff --git a/core/modules/field/lib/Drupal/field/Tests/Boolean/BooleanFieldTest.php b/core/modules/field/lib/Drupal/field/Tests/Boolean/BooleanFieldTest.php
new file mode 100644
index 0000000..7b044a0
--- /dev/null
+++ b/core/modules/field/lib/Drupal/field/Tests/Boolean/BooleanFieldTest.php
@@ -0,0 +1,123 @@
+<?php
+
+/**
+ * @file
+ * Contains \Drupal\field\Tests\Boolean\BooleanFieldTest.
+ */
+
+namespace Drupal\field\Tests\Boolean;
+
+use Drupal\simpletest\WebTestBase;
+
+/**
+ * Tests boolean field functionality.
+ */
+class BooleanFieldTest extends WebTestBase {
+
+  /**
+   * Modules to enable.
+   *
+   * @var array
+   */
+  public static $modules = array('node', 'entity_test', 'field_ui');
+
+  /**
+   * A field to use in this test class.
+   *
+   * @var \Drupal\field\Entity\FieldConfig
+   */
+  protected $field;
+
+  /**
+   * The instance used in this test class.
+   *
+   * @var \Drupal\field\Entity\FieldInstanceConfig
+   */
+  protected $instance;
+
+  public static function getInfo() {
+    return array(
+      'name'  => 'Boolean field',
+      'description'  => 'Tests boolean field functionality.',
+      'group' => 'Field types',
+    );
+  }
+
+  function setUp() {
+    parent::setUp();
+
+    $this->web_user = $this->drupalCreateUser(array(
+      'view test entity',
+      'administer entity_test content',
+      'administer content types',
+    ));
+    $this->drupalLogin($this->web_user);
+  }
+
+  /**
+   * Tests boolean field.
+   */
+  function testBooleanField() {
+    $on = $this->randomName();
+    $off = $this->randomName();
+
+    // Create a field with settings to validate.
+    $field_name = drupal_strtolower($this->randomName());
+    $this->field = entity_create('field_config', array(
+      'name' => $field_name,
+      'entity_type' => 'entity_test',
+      'type' => 'boolean',
+      'settings' => array(
+        'allowed_values' => array(
+          1 => $on,
+          0 => $off,
+        ),
+      ),
+    ));
+    $this->field->save();
+    $this->instance = entity_create('field_instance_config', array(
+      'field_name' => $field_name,
+      'entity_type' => 'entity_test',
+      'bundle' => 'entity_test',
+    ));
+    $this->instance->save();
+
+    // Create a form display for the default form mode.
+    entity_get_form_display('entity_test', 'entity_test', 'default')
+      ->setComponent($field_name, array(
+        'type' => 'boolean',
+      ))
+      ->save();
+    // Create a display for the full view mode.
+    entity_get_display('entity_test', 'entity_test', 'full')
+      ->setComponent($field_name, array(
+        'type' => 'number_unformatted',
+      ))
+      ->save();
+
+    // Display creation form.
+    $this->drupalGet('entity_test/add');
+    $this->assertFieldByName("{$field_name}[value]", '', 'Widget found.');
+    $this->assertRaw($on);
+    $this->assertRaw($off);
+
+    // Submit and ensure it is accepted.
+    $edit = array(
+      'user_id' => 1,
+      'name' => $this->randomName(),
+      "{$field_name}[value]" => 1,
+    );
+    $this->drupalPostForm(NULL, $edit, t('Save'));
+    preg_match('|entity_test/manage/(\d+)|', $this->url, $match);
+    $id = $match[1];
+    $this->assertText(t('entity_test @id has been created.', array('@id' => $id)));
+
+    // Verify that boolean value is displayed.
+    $entity = entity_load('entity_test', $id);
+    $display = entity_get_display($entity->getEntityTypeId(), $entity->bundle(), 'full');
+    $content = $display->build($entity);
+    $this->drupalSetContent(drupal_render($content));
+    $this->assertRaw('<div class="field-item">1</div>');
+  }
+
+}
diff --git a/core/modules/field/lib/Drupal/field/Tests/Boolean/BooleanItemTest.php b/core/modules/field/lib/Drupal/field/Tests/Boolean/BooleanItemTest.php
new file mode 100644
index 0000000..d8631db
--- /dev/null
+++ b/core/modules/field/lib/Drupal/field/Tests/Boolean/BooleanItemTest.php
@@ -0,0 +1,86 @@
+<?php
+
+/**
+ * @file
+ * Contains \Drupal\field\Tests\Boolean\BooleanItemTest.
+ */
+
+namespace Drupal\field\Tests\Boolean;
+
+use Drupal\Core\Field\FieldItemListInterface;
+use Drupal\Core\Field\FieldItemInterface;
+use Drupal\field\Tests\FieldUnitTestBase;
+
+/**
+ * Tests the new entity API for the boolean field type.
+ */
+class BooleanItemTest extends FieldUnitTestBase {
+
+  /**
+   * Modules to enable.
+   *
+   * @var array
+   */
+
+  public static function getInfo() {
+    return array(
+      'name' => 'Boolena field item',
+      'description' => 'Tests the new entity API for the boolean field type.',
+      'group' => 'Field types',
+    );
+  }
+
+  public function setUp() {
+    parent::setUp();
+
+    // Create an boolean field and instance for validation.
+    entity_create('field_config', array(
+      'name' => 'field_boolean',
+      'entity_type' => 'entity_test',
+      'type' => 'boolean',
+    ))->save();
+    entity_create('field_instance_config', array(
+      'entity_type' => 'entity_test',
+      'field_name' => 'field_boolean',
+      'bundle' => 'entity_test',
+    ))->save();
+
+    // Create a form display for the default form mode.
+    entity_get_form_display('entity_test', 'entity_test', 'default')
+      ->setComponent('field_boolean', array(
+        'type' => 'boolean',
+      ))
+      ->save();
+  }
+
+  /**
+   * Tests using entity fields of the boolean field type.
+   */
+  public function testBooleanItem() {
+    // Verify entity creation.
+    $entity = entity_create('entity_test');
+    $value = '1';
+    $entity->field_boolean = $value;
+    $entity->name->value = $this->randomName();
+    $entity->save();
+
+    // Verify entity has been created properly.
+    $id = $entity->id();
+    $entity = entity_load('entity_test', $id);
+    $this->assertTrue($entity->field_boolean instanceof FieldItemListInterface, 'Field implements interface.');
+    $this->assertTrue($entity->field_boolean[0] instanceof FieldItemInterface, 'Field item implements interface.');
+    $this->assertEqual($entity->field_boolean->value, $value);
+    $this->assertEqual($entity->field_boolean[0]->value, $value);
+
+    // Verify changing the boolean value.
+    $new_value = 0;
+    $entity->field_boolean->value = $new_value;
+    $this->assertEqual($entity->field_boolean->value, $new_value);
+
+    // Read changed entity and assert changed values.
+    $entity->save();
+    $entity = entity_load('entity_test', $id);
+    $this->assertEqual($entity->field_boolean->value, $new_value);
+  }
+
+}
diff --git a/core/modules/forum/config/install/field.field.taxonomy_term.forum_container.yml b/core/modules/forum/config/install/field.field.taxonomy_term.forum_container.yml
index a666915..ec5f478 100644
--- a/core/modules/forum/config/install/field.field.taxonomy_term.forum_container.yml
+++ b/core/modules/forum/config/install/field.field.taxonomy_term.forum_container.yml
@@ -2,7 +2,7 @@ id: taxonomy_term.forum_container
 status: true
 langcode: en
 name: forum_container
-type: list_boolean
+type: boolean
 settings:
   allowed_values:
     - ''
diff --git a/core/modules/forum/config/install/field.instance.taxonomy_term.forums.forum_container.yml b/core/modules/forum/config/install/field.instance.taxonomy_term.forums.forum_container.yml
index 710b8bd..e535c2b 100644
--- a/core/modules/forum/config/install/field.instance.taxonomy_term.forums.forum_container.yml
+++ b/core/modules/forum/config/install/field.instance.taxonomy_term.forums.forum_container.yml
@@ -12,7 +12,7 @@ default_value:
     value: false
 default_value_function: ''
 settings: {  }
-field_type: list_boolean
+field_type: boolean
 dependencies:
   entity:
     - field.field.taxonomy_term.forum_container
diff --git a/core/modules/node/src/Tests/NodeAccessLanguageAwareCombinationTest.php b/core/modules/node/src/Tests/NodeAccessLanguageAwareCombinationTest.php
index 7af2816..7bf0760 100644
--- a/core/modules/node/src/Tests/NodeAccessLanguageAwareCombinationTest.php
+++ b/core/modules/node/src/Tests/NodeAccessLanguageAwareCombinationTest.php
@@ -58,7 +58,7 @@ public function setUp() {
     $field_private = entity_create('field_config', array(
       'name' => 'field_private',
       'entity_type' => 'node',
-      'type' => 'list_boolean',
+      'type' => 'boolean',
       'cardinality' => 1,
       'translatable'  => TRUE,
       'settings' => array(
diff --git a/core/modules/node/src/Tests/NodeAccessLanguageAwareTest.php b/core/modules/node/src/Tests/NodeAccessLanguageAwareTest.php
index 6012dfc..19ea625 100644
--- a/core/modules/node/src/Tests/NodeAccessLanguageAwareTest.php
+++ b/core/modules/node/src/Tests/NodeAccessLanguageAwareTest.php
@@ -51,7 +51,7 @@ public function setUp() {
     $field_private = entity_create('field_config', array(
       'name' => 'field_private',
       'entity_type' => 'node',
-      'type' => 'list_boolean',
+      'type' => 'boolean',
       'cardinality' => 1,
       'translatable'  => TRUE,
       'settings' => array(
diff --git a/core/modules/options/config/schema/options.schema.yml b/core/modules/options/config/schema/options.schema.yml
index 8c90839..e9a162e 100644
--- a/core/modules/options/config/schema/options.schema.yml
+++ b/core/modules/options/config/schema/options.schema.yml
@@ -87,36 +87,6 @@ field.list_text.value:
           type: string
           label: 'Value'
 
-field.list_boolean.settings:
-  type: mapping
-  label: 'List (boolean) settings'
-  mapping:
-    allowed_values:
-      type: sequence
-      label: 'Allowed values list'
-      sequence:
-        - type: string
-          label: 'Value'
-    allowed_values_function:
-      type: string
-      label: 'Allowed values function'
-
-field.list_boolean.instance_settings:
-  label: 'List (boolean)'
-  type: mapping
-  mapping: {  }
-
-field.list_boolean.value:
-  type: sequence
-  label: 'Default value'
-  sequence:
-    - type: mapping
-      label: 'Default'
-      mapping:
-        value:
-          type: boolean
-          label: 'Value'
-
 entity_view_display.field.list_default:
   type: entity_field_view_display_base
   label: 'Options list default display settings'
diff --git a/core/modules/options/src/Plugin/Field/FieldFormatter/OptionsDefaultFormatter.php b/core/modules/options/src/Plugin/Field/FieldFormatter/OptionsDefaultFormatter.php
index 5c0b0d2..a08f6ca 100644
--- a/core/modules/options/src/Plugin/Field/FieldFormatter/OptionsDefaultFormatter.php
+++ b/core/modules/options/src/Plugin/Field/FieldFormatter/OptionsDefaultFormatter.php
@@ -17,10 +17,10 @@
  *   id = "list_default",
  *   label = @Translation("Default"),
  *   field_types = {
+ *     "boolean",
  *     "list_integer",
  *     "list_float",
  *     "list_text",
- *     "list_boolean"
  *   }
  * )
  */
diff --git a/core/modules/options/src/Plugin/Field/FieldFormatter/OptionsKeyFormatter.php b/core/modules/options/src/Plugin/Field/FieldFormatter/OptionsKeyFormatter.php
index 82d85d6..663badc 100644
--- a/core/modules/options/src/Plugin/Field/FieldFormatter/OptionsKeyFormatter.php
+++ b/core/modules/options/src/Plugin/Field/FieldFormatter/OptionsKeyFormatter.php
@@ -17,10 +17,10 @@
  *   id = "list_key",
  *   label = @Translation("Key"),
  *   field_types = {
+ *     "boolean",
  *     "list_integer",
  *     "list_float",
  *     "list_text",
- *     "list_boolean"
  *   }
  * )
  */
diff --git a/core/modules/options/src/Plugin/Field/FieldType/ListBooleanItem.php b/core/modules/options/src/Plugin/Field/FieldType/ListBooleanItem.php
deleted file mode 100644
index 5d16585..0000000
--- a/core/modules/options/src/Plugin/Field/FieldType/ListBooleanItem.php
+++ /dev/null
@@ -1,166 +0,0 @@
-<?php
-
-/**
- * @file
- * Contains \Drupal\options\Type\ListBooleanItem.
- */
-
-namespace Drupal\options\Plugin\Field\FieldType;
-
-use Drupal\Component\Utility\NestedArray;
-use Drupal\Core\Field\FieldStorageDefinitionInterface;
-use Drupal\Core\Field\FieldItemBase;
-use Drupal\Core\Session\AccountInterface;
-use Drupal\Core\TypedData\AllowedValuesInterface;
-use Drupal\Core\TypedData\DataDefinition;
-
-/**
- * Plugin implementation of the 'list_boolean' field type.
- *
- * @FieldType(
- *   id = "list_boolean",
- *   label = @Translation("Boolean"),
- *   description = @Translation("This field stores simple on/off or yes/no options."),
- *   default_widget = "options_buttons",
- *   default_formatter = "list_default",
- * )
- */
-class ListBooleanItem extends FieldItemBase implements AllowedValuesInterface {
-
-  /**
-   * {@inheritdoc}
-   */
-  public static function defaultSettings() {
-    return array(
-      'allowed_values' => array(),
-      'allowed_values_function' => '',
-    ) + parent::defaultSettings();
-  }
-
-  /**
-   * {@inheritdoc}
-   */
-  public function getPossibleValues(AccountInterface $account = NULL) {
-    return array_keys($this->getSettableOptions($account));
-  }
-
-  /**
-   * {@inheritdoc}
-   */
-  public function getPossibleOptions(AccountInterface $account = NULL) {
-    return $this->getSettableOptions($account);
-  }
-
-  /**
-   * {@inheritdoc}
-   */
-  public function getSettableValues(AccountInterface $account = NULL) {
-    return array_keys($this->getSettableOptions($account));
-  }
-
-  /**
-   * {@inheritdoc}
-   */
-  public function getSettableOptions(AccountInterface $account = NULL) {
-    return options_allowed_values($this->getFieldDefinition(), $this->getEntity());
-  }
-
-  /**
-   * {@inheritdoc}
-   */
-  public static function propertyDefinitions(FieldStorageDefinitionInterface $field_definition) {
-    $properties['value'] = DataDefinition::create('boolean')
-      ->setLabel(t('Boolean value'));
-
-    return $properties;
-  }
-
-  /**
-   * {@inheritdoc}
-   */
-  public static function schema(FieldStorageDefinitionInterface $field_definition) {
-    return array(
-      'columns' => array(
-        'value' => array(
-          'type' => 'int',
-          'not null' => FALSE,
-        ),
-      ),
-      'indexes' => array(
-        'value' => array('value'),
-      ),
-    );
-  }
-
-  /**
-   * {@inheritdoc}
-   */
-  public function isEmpty() {
-    return empty($this->value) && (string) $this->value !== '0';
-  }
-
-  /**
-   * {@inheritdoc}
-   */
-  public function settingsForm(array &$form, array &$form_state, $has_data) {
-    $allowed_values = $this->getSetting('allowed_values');
-    $allowed_values_function = $this->getSetting('allowed_values_function');
-
-    $values = $allowed_values;
-    $off_value = array_shift($values);
-    $on_value = array_shift($values);
-
-    $element['allowed_values'] = array(
-      '#type' => 'value',
-      '#description' => '',
-      '#value_callback' => array(get_class($this), 'optionsBooleanAllowedValues'),
-      '#access' => empty($allowed_values_function),
-    );
-    $element['allowed_values']['on'] = array(
-      '#type' => 'textfield',
-      '#title' => t('On value'),
-      '#default_value' => $on_value,
-      '#required' => FALSE,
-      '#description' => t('If left empty, "1" will be used.'),
-      // Change #parents to make sure the element is not saved into field
-      // settings.
-      '#parents' => array('on'),
-    );
-    $element['allowed_values']['off'] = array(
-      '#type' => 'textfield',
-      '#title' => t('Off value'),
-      '#default_value' => $off_value,
-      '#required' => FALSE,
-      '#description' => t('If left empty, "0" will be used.'),
-      // Change #parents to make sure the element is not saved into field
-      // settings.
-      '#parents' => array('off'),
-    );
-
-    // Link the allowed value to the on / off elements to prepare for the rare
-    // case of an alter changing #parents.
-    $element['allowed_values']['#on_parents'] = &$element['allowed_values']['on']['#parents'];
-    $element['allowed_values']['#off_parents'] = &$element['allowed_values']['off']['#parents'];
-
-    $element['allowed_values_function'] = array(
-      '#type' => 'item',
-      '#title' => t('Allowed values list'),
-      '#markup' => t('The value of this field is being determined by the %function function and may not be changed.', array('%function' => $allowed_values_function)),
-      '#access' => !empty($allowed_values_function),
-      '#value' => $allowed_values_function,
-    );
-
-    return $element;
-  }
-
-  /**
-   * Form element #value_callback: assembles the allowed values for 'boolean'
-   * fields.
-   */
-  public static function optionsBooleanAllowedValues($element, $input, $form_state) {
-    $on = NestedArray::getValue($form_state['input'], $element['#on_parents']);
-    $off = NestedArray::getValue($form_state['input'], $element['#off_parents']);
-    return array($off, $on);
-  }
-
-}
diff --git a/core/modules/options/src/Plugin/Field/FieldWidget/ButtonsWidget.php b/core/modules/options/src/Plugin/Field/FieldWidget/ButtonsWidget.php
index 9746b0f..7c5261f 100644
--- a/core/modules/options/src/Plugin/Field/FieldWidget/ButtonsWidget.php
+++ b/core/modules/options/src/Plugin/Field/FieldWidget/ButtonsWidget.php
@@ -20,7 +20,6 @@
  *     "list_integer",
  *     "list_float",
  *     "list_text",
- *     "list_boolean"
  *   },
  *   multiple_values = TRUE
  * )
diff --git a/core/modules/options/src/Tests/OptionsFieldUITest.php b/core/modules/options/src/Tests/OptionsFieldUITest.php
index baecfca..2bbbad9 100644
--- a/core/modules/options/src/Tests/OptionsFieldUITest.php
+++ b/core/modules/options/src/Tests/OptionsFieldUITest.php
@@ -212,7 +212,7 @@ function testOptionsAllowedValuesText() {
    */
   function testOptionsAllowedValuesBoolean() {
     $this->field_name = 'field_options_boolean';
-    $this->createOptionsField('list_boolean');
+    $this->createOptionsField('boolean');
 
     // Check that the separate 'On' and 'Off' form fields work.
     $on = $this->randomName();
@@ -252,7 +252,7 @@ function testOptionsTrimmedValuesText() {
    * Helper function to create list field of a given type.
    *
    * @param string $type
-   *   'list_integer', 'list_float', 'list_text' or 'list_boolean'
+   *   'boolean', 'list_integer', 'list_float' or 'list_text'
    */
   protected function createOptionsField($type) {
     // Create a test field and instance.
@@ -302,7 +302,7 @@ function assertAllowedValuesInput($input_string, $result, $message) {
    */
   function testNodeDisplay() {
     $this->field_name = strtolower($this->randomName());
-    $this->createOptionsField('list_boolean');
+    $this->createOptionsField('boolean');
     $node = $this->drupalCreateNode(array('type' => $this->type));
 
     $on = $this->randomName();
@@ -317,7 +317,7 @@ function testNodeDisplay() {
 
     // Select a default value.
     $edit = array(
-      $this->field_name => '1',
+      $this->field_name . '[value]' => '1',
     );
     $this->drupalPostForm('node/' . $node->id() . '/edit', $edit, t('Save and keep published'));
 
diff --git a/core/modules/options/src/Tests/OptionsWidgetsTest.php b/core/modules/options/src/Tests/OptionsWidgetsTest.php
index bcec12c..1d2ae07 100644
--- a/core/modules/options/src/Tests/OptionsWidgetsTest.php
+++ b/core/modules/options/src/Tests/OptionsWidgetsTest.php
@@ -103,7 +103,7 @@ function setUp() {
     $this->bool = entity_create('field_config', array(
       'name' => 'bool',
       'entity_type' => 'entity_test',
-      'type' => 'list_boolean',
+      'type' => 'boolean',
       'cardinality' => 1,
       'settings' => array(
         'allowed_values' => array(
@@ -549,7 +549,7 @@ function testOnOffCheckboxLabelSetting() {
     entity_create('field_config', array(
       'name' => $field_name,
       'entity_type' => 'node',
-      'type' => 'list_boolean',
+      'type' => 'boolean',
       'cardinality' => 1,
       'settings' => array(
         'allowed_values' => array(
