diff --git a/lib/Drupal/geofield/GeofieldBackend/GeofieldBackendDefault.php b/lib/Drupal/geofield/GeofieldBackend/GeofieldBackendDefault.php
index 827a4b2..f5a2077 100644
--- a/lib/Drupal/geofield/GeofieldBackend/GeofieldBackendDefault.php
+++ b/lib/Drupal/geofield/GeofieldBackend/GeofieldBackendDefault.php
@@ -1,27 +1,25 @@
 <?php
 
-namespace Drupal\geofield\Plugin\GeofieldBackend;
+namespace Drupal\geofield\GeofieldBackend;
 
 use Drupal;
 use geoPHP;
-use Drupal\Component\Annotation\Plugin;
 use Drupal\Core\Annotation\Translation;
+use Drupal\Component\Annotation\Plugin;
+use Drupal\Component\Plugin\PluginBase;
 
 /**
  * Default backend for Geofield.
  *
  * @Plugin(
  *   id = "geofield_backend_default",
- *   admin_label = @Translation("Default Backend"),
- *   class = "GeofieldBackendDefault",
- *   module = "geofield"
+ *   admin_label = @Translation("Default Backend")
  * )
  */
 
-// @TODO: Provide base class.
 // @TODO: Document.
 
-class GeofieldBackendDefault {
+class GeofieldBackendDefault extends PluginBase {
   
   function schema() {
     return array(
diff --git a/lib/Drupal/geofield/Plugin/field/field_type/GeofieldItem.php b/lib/Drupal/geofield/Plugin/field/field_type/GeofieldItem.php
index 9b81fba..2671ae8 100644
--- a/lib/Drupal/geofield/Plugin/field/field_type/GeofieldItem.php
+++ b/lib/Drupal/geofield/Plugin/field/field_type/GeofieldItem.php
@@ -2,7 +2,7 @@
 
 /**
  * @file
- * Contains \Drupal\geofield\Type\GeofieldItem.
+ * Contains \Drupal\geofield\field\field_type\GeofieldItem.
  */
 
 namespace Drupal\geofield\Plugin\field\field_type;
@@ -12,7 +12,7 @@ use geoPHP;
 use Drupal\Core\Entity\Annotation\FieldType;
 use Drupal\Core\Annotation\Translation;
 use Drupal\field\Plugin\Type\FieldType\ConfigFieldItemBase;
-use Drupal\field\Plugin\Core\Entity\Field;
+use Drupal\field\FieldInterface;
 use Drupal\Core\Entity\Field\PrepareCacheInterface;
 use Drupal\geofield\Plugin\Type\GeofieldBackendPluginManager;
 
@@ -24,7 +24,7 @@ use Drupal\geofield\Plugin\Type\GeofieldBackendPluginManager;
  *   module = "geofield",
  *   label = @Translation("Geofield"),
  *   description = @Translation("This field stores geospatial information."),
- *   default_widget = "geofield_widget_default",
+ *   default_widget = "geofield_latlon",
  *   default_formatter = "geofield_formatter_default",
  *   instance_settings = {
  *     "backend" = "geofield_backend_default"
@@ -45,7 +45,7 @@ class GeofieldItem extends ConfigFieldItemBase implements PrepareCacheInterface
   /**
    * {@inheritdoc}
    */
-  public static function schema(Field $field) {
+  public static function schema(FieldInterface $field) {
     $backendManager = \Drupal::service('plugin.manager.geofield_backend');
     $backendPlugin = NULL;
 
@@ -226,8 +226,8 @@ class GeofieldItem extends ConfigFieldItemBase implements PrepareCacheInterface
       $bounding = $geom->getBBox();
 
       $this->geo_type = $geom->geometryType();
-      $this->lat = $centroid->getX();
-      $this->lon = $centroid->getY();
+      $this->lon = $centroid->getX();
+      $this->lat = $centroid->getY();
       $this->left = $bounding['minx'];
       $this->top = $bounding['maxy'];
       $this->right = $bounding['maxx'];
diff --git a/lib/Drupal/geofield/Plugin/field/formatter/GeofieldDefaultFormatter.php b/lib/Drupal/geofield/Plugin/field/formatter/GeofieldDefaultFormatter.php
index f3299f6..b40c4d6 100644
--- a/lib/Drupal/geofield/Plugin/field/formatter/GeofieldDefaultFormatter.php
+++ b/lib/Drupal/geofield/Plugin/field/formatter/GeofieldDefaultFormatter.php
@@ -13,13 +13,14 @@ use Drupal\field\Annotation\FieldFormatter;
 use Drupal\Core\Annotation\Translation;
 use Drupal\field\Plugin\Type\Formatter\FormatterBase;
 use Drupal\Core\Entity\EntityInterface;
+use Drupal\Core\Entity\Field\FieldInterface;
+
 
 /**
  * Plugin implementation of the 'geofield_default' formatter.
  *
  * @FieldFormatter(
  *   id = "geofield_formatter_default",
- *   module = "geofield",
  *   label = @Translation("Raw Output"),
  *   field_types = {
  *     "geofield"
@@ -64,20 +65,20 @@ class GeofieldDefaultFormatter extends FormatterBase {
   /**
    * {@inheritdoc}
    */
-  public function prepareView(array $entities, $langcode, array &$items) {
+  public function prepareView(array $entities, $langcode, array $items) {
 
   }
 
   /**
    * {@inheritdoc}
    */
-  public function viewElements(EntityInterface $entity, $langcode, array $items) {
+  public function viewElements(EntityInterface $entity, $langcode, FieldInterface $items) {
     $elements = array();
     Drupal::service('geophp.geophp');
 
     foreach ($items as $delta => $item) {
-      $geom = geoPHP::load($item['value']);
-      $output = $geom->out($this->getSetting('output_format'));
+      $geom = geoPHP::load($item->value);
+      $output = $geom ? $geom->out($this->getSetting('output_format')) : '';
       $elements[$delta] = array('#markup' => $output);
     }
 
diff --git a/lib/Drupal/geofield/Plugin/field/widget/GeofieldDefaultWidget.php b/lib/Drupal/geofield/Plugin/field/widget/GeofieldDefaultWidget.php
index b102a51..85abaa5 100644
--- a/lib/Drupal/geofield/Plugin/field/widget/GeofieldDefaultWidget.php
+++ b/lib/Drupal/geofield/Plugin/field/widget/GeofieldDefaultWidget.php
@@ -7,16 +7,16 @@
 
 namespace Drupal\geofield\Plugin\field\widget;
 
-use Drupal\Component\Annotation\Plugin;
+use Drupal\field\Annotation\FieldWidget;
 use Drupal\Core\Annotation\Translation;
+use Drupal\Core\Entity\Field\FieldInterface;
 use Drupal\field\Plugin\Type\Widget\WidgetBase;
 
 /**
- * Plugin implementation of the 'geofield_default' widget.
+ * Widget implementation of the 'geofield_default' widget.
  *
- * @Plugin(
+ * @FieldWidget(
  *   id = "geofield_widget_default",
- *   module = "geofield",
  *   label = @Translation("Geofield"),
  *   field_types = {
  *     "geofield"
@@ -26,14 +26,14 @@ use Drupal\field\Plugin\Type\Widget\WidgetBase;
 class GeofieldDefaultWidget extends WidgetBase {
 
   /**
-   * Implements \Drupal\field\Plugin\Type\Widget\WidgetInterface::formElement().
+   * {@inheritdoc}
    */
-  public function formElement(array $items, $delta, array $element, $langcode, array &$form, array &$form_state) {
-    $element['value'] = $element + array(
+  public function formElement(FieldInterface $items, $delta, array $element, $langcode, array &$form, array &$form_state) {
+    $element += array(
       '#type' => 'textarea',
-      '#default_value' => isset($items[$delta]['value']) ? $items[$delta]['value'] : NULL,
+      '#default_value' => $items[$delta]->value ?: NULL,
     );
-    return $element;
+    return array('value' => $element);
   }
 
 }
diff --git a/lib/Drupal/geofield/Plugin/field/widget/GeofieldLatLonWidget.php b/lib/Drupal/geofield/Plugin/field/widget/GeofieldLatLonWidget.php
index 37617c9..7c51990 100644
--- a/lib/Drupal/geofield/Plugin/field/widget/GeofieldLatLonWidget.php
+++ b/lib/Drupal/geofield/Plugin/field/widget/GeofieldLatLonWidget.php
@@ -7,28 +7,28 @@
 
 namespace Drupal\geofield\Plugin\field\widget;
 
-use Drupal\Component\Annotation\Plugin;
+use Drupal\field\Annotation\FieldWidget;
 use Drupal\Core\Annotation\Translation;
+use Drupal\Core\Entity\Field\FieldInterface;
 use Drupal\field\Plugin\Type\Widget\WidgetBase;
 
 /**
  * Plugin implementation of the 'geofield_latlon' widget.
  *
- * @Plugin(
+ * @FieldWidget(
  *   id = "geofield_latlon",
- *   module = "geofield",
  *   label = @Translation("Latitude/Longitude"),
  *   field_types = {
  *     "geofield"
  *   },
-*   settings = {
+ *   settings = {
  *     "html5_geolocation" = false
  *   }
  * )
  */
 class GeofieldLatLonWidget extends WidgetBase {
   /**
-   * Implements \Drupal\field\Plugin\Type\Widget\WidgetInterface::settingsForm().
+   * {@inheritdoc}
    */
   public function settingsForm(array $form, array &$form_state) {
     $elements = parent::settingsForm($form, $form_state);
@@ -43,42 +43,37 @@ class GeofieldLatLonWidget extends WidgetBase {
   }
 
   /**
-   * Implements \Drupal\field\Plugin\Type\Widget\WidgetInterface::formElement().
+   * {@inheritdoc}
    */
-  public function formElement(array $items, $delta, array $element, $langcode, array &$form, array &$form_state) {
-    $instance = $this->instance;
+  public function formElement(FieldInterface $items, $delta, array $element, $langcode, array &$form, array &$form_state) {
 
     $latlon_value = array(
       'lat' => '',
       'lon' => '',
     );
-
-    if (isset($items[$delta]['lat'])) {
-      $latlon_value['lat'] = floatval($items[$delta]['lat']);
+    if (isset($items[$delta]->lat)) {
+      $latlon_value['lat'] = floatval($items[$delta]->lat);
     }
-    if (isset($items[$delta]['lon'])) {
-      $latlon_value['lon'] = floatval($items[$delta]['lon']);
+    if (isset($items[$delta]->lon)) {
+      $latlon_value['lon'] = floatval($items[$delta]->lon);
     }
 
-    $element['value'] = array(
+    $element += array(
       '#type' => 'geofield_latlon',
-      '#title' => check_plain($instance['label']),
-      '#description' => check_plain($element['#description']),
       '#default_value' => $latlon_value,
-      '#required' => $element['#required'],
       '#geolocation' => $this->getSetting('html5_geolocation'),
     );
 
-    return $element;
+    return array('value' => $element);
   }
 
   /**
-   * Implements \Drupal\field\Plugin\Type\Widget\WidgetInterface::massageFormValues().
+   * {@inheritdoc}
    */
   public function massageFormValues(array $values, array $form, array &$form_state) {
     foreach ($values as $delta => $value) {
       if (!empty($value['value']['lat']) && !empty($value['value']['lon'])) {
-        $values[$delta]['value'] = 'POINT(' . $value['value']['lat'] . ' ' . $value['value']['lon'] . ')';
+        $values[$delta]['value'] = 'POINT(' . $value['value']['lon'] . ' ' . $value['value']['lat'] . ')';
       }
       else {
         $values[$delta]['value'] = '';
diff --git a/lib/Drupal/geofield/Plugin/views/field/GeofieldProximity.php b/lib/Drupal/geofield/Plugin/views/field/GeofieldProximity.php
index 9a64f5d..1b93181 100644
--- a/lib/Drupal/geofield/Plugin/views/field/GeofieldProximity.php
+++ b/lib/Drupal/geofield/Plugin/views/field/GeofieldProximity.php
@@ -7,7 +7,7 @@
 
 namespace Drupal\geofield\Plugin\views\field;
 
-use Drupal\Component\Annotation\Plugin;
+use Drupal\Component\Annotation\PluginID;
 use Drupal\views\Plugin\views\field\Numeric;
 
 /**
@@ -15,13 +15,13 @@ use Drupal\views\Plugin\views\field\Numeric;
  *
  * @ingroup views_field_handlers
  *
- * @Plugin(
- *   id = "geofield_proximity",
- *   module = "geofield"
- * )
+ * @PluginID("geofield_proximity")
  */
 class GeofieldProximity extends Numeric {
 
+  /**
+   * {@inheritdoc}.
+   */
   protected function defineOptions() {
     $options = parent::defineOptions();
 
@@ -37,6 +37,9 @@ class GeofieldProximity extends Numeric {
     return $options;
   }
 
+  /**
+   * {@inheritdoc}.
+   */
   public function buildOptionsForm(&$form, &$form_state) {
     parent::buildOptionsForm($form, $form_state);
 
@@ -64,20 +67,26 @@ class GeofieldProximity extends Numeric {
     );
   }
 
+  /**
+   * {@inheritdoc}.
+   */
   public function validateOptionsForm(&$form, &$form_state) {
     $proximityPlugin = geofield_proximity_load_plugin($form_state['values']['options']['source']);
     $proximityPlugin->options_validate($form, $form_state, $this);
   }
 
   /**
-   * Overrides Drupal\views\Plugin\views\field\FieldPluginBase::get_value()
+   * {@inheritdoc}.
    */
-  public function get_value($values, $field = NULL) {
+  public function getValue($values, $field = NULL) {
     if (isset($values->{$this->field_alias})) {
       return $values->{$this->field_alias};
     }
   }
 
+  /**
+   * {@inheritdoc}.
+   */
   public function query() {
     $this->ensureMyTable();
 
diff --git a/lib/Drupal/geofield/Plugin/views/filter/GeofieldProximity.php b/lib/Drupal/geofield/Plugin/views/filter/GeofieldProximity.php
index 00acb9a..bf658a5 100644
--- a/lib/Drupal/geofield/Plugin/views/filter/GeofieldProximity.php
+++ b/lib/Drupal/geofield/Plugin/views/filter/GeofieldProximity.php
@@ -7,7 +7,7 @@
 
 namespace Drupal\geofield\Plugin\views\filter;
 
-use Drupal\Component\Annotation\Plugin;
+use Drupal\Component\Annotation\PluginID;
 use Drupal\views\Plugin\views\filter\Numeric;
 
 /**
@@ -15,10 +15,7 @@ use Drupal\views\Plugin\views\filter\Numeric;
  *
  * @ingroup views_field_handlers
  *
- * @Plugin(
- *   id = "geofield_proximity",
- *   module = "geofield"
- * )
+ * @PluginID("geofield_proximity")
  */
 class GeofieldProximity extends Numeric {
 
@@ -47,49 +44,49 @@ class GeofieldProximity extends Numeric {
     $operators = array(
       '<' => array(
         'title' => t('Is less than'),
-        'method' => 'op_simple',
+        'method' => 'opSimple',
         'short' => t('<'),
         'values' => 1,
       ),
       '<=' => array(
         'title' => t('Is less than or equal to'),
-        'method' => 'op_simple',
+        'method' => 'opSimple',
         'short' => t('<='),
         'values' => 1,
       ),
       '=' => array(
         'title' => t('Is equal to'),
-        'method' => 'op_simple',
+        'method' => 'opSimple',
         'short' => t('='),
         'values' => 1,
       ),
       '!=' => array(
         'title' => t('Is not equal to'),
-        'method' => 'op_simple',
+        'method' => 'opSimple',
         'short' => t('!='),
         'values' => 1,
       ),
       '>=' => array(
         'title' => t('Is greater than or equal to'),
-        'method' => 'op_simple',
+        'method' => 'opSimple',
         'short' => t('>='),
         'values' => 1,
       ),
       '>' => array(
         'title' => t('Is greater than'),
-        'method' => 'op_simple',
+        'method' => 'opSimple',
         'short' => t('>'),
         'values' => 1,
       ),
       'between' => array(
         'title' => t('Is between'),
-        'method' => 'op_between',
+        'method' => 'opBetween',
         'short' => t('between'),
         'values' => 2,
       ),
       'not between' => array(
         'title' => t('Is not between'),
-        'method' => 'op_between',
+        'method' => 'opBetween',
         'short' => t('not between'),
         'values' => 2,
       ),
@@ -121,11 +118,11 @@ class GeofieldProximity extends Numeric {
     }
   }
 
-  public function op_between($options) {
+  protected function opBetween($options) {
     $this->query->add_where_expression($this->options['group'], geofield_haversine($options) . ' ' . strtoupper($this->operator) . ' ' . $this->value['distance'] . ' AND ' . $this->value['distance2']);
   }
 
-  public function op_simple($options) {
+  protected function opSimple($options) {
     $this->query->add_where_expression($this->options['group'], geofield_haversine($options) . ' ' . $this->operator . ' ' . $this->value['distance']);
   }
 
@@ -176,7 +173,7 @@ class GeofieldProximity extends Numeric {
     $proximityPlugin->options_validate($form, $form_state, $this);
   }
 
-  public function value_form(&$form, &$form_state) {
+  protected function valueForm(&$form, &$form_state) {
     $form['value'] = array(
       '#type' => 'geofield_proximity',
       '#title' => t('Proximity Search'),
@@ -201,8 +198,8 @@ class GeofieldProximity extends Numeric {
     }
   }
 
-  public function value_validate($form, &$form_state) {
-    parent::value_validate($form, $form_state);
+  protected function valueValidate($form, &$form_state) {
+    parent::valueValidate($form, $form_state);
     $proximityPlugin = geofield_proximity_load_plugin($form_state['values']['options']['source']);
     $proximityPlugin->value_validate($form, $form_state, $this);
   }
diff --git a/lib/Drupal/geofield/Plugin/views/sort/GeofieldProximity.php b/lib/Drupal/geofield/Plugin/views/sort/GeofieldProximity.php
index 1beb6ff..4e39c59 100644
--- a/lib/Drupal/geofield/Plugin/views/sort/GeofieldProximity.php
+++ b/lib/Drupal/geofield/Plugin/views/sort/GeofieldProximity.php
@@ -7,7 +7,7 @@
 
 namespace Drupal\geofield\Plugin\views\sort;
 
-use Drupal\Component\Annotation\Plugin;
+use Drupal\Component\Annotation\PluginID;
 use Drupal\views\Plugin\views\sort\SortPluginBase;
 
 /**
@@ -15,10 +15,7 @@ use Drupal\views\Plugin\views\sort\SortPluginBase;
  *
  * @ingroup views_field_handlers
  *
- * @Plugin(
- *   id = "geofield_proximity",
- *   module = "geofield"
- * )
+ * @PluginID("geofield_proximity")
  */
 class GeofieldProximity extends SortPluginBase {
 
diff --git a/modules/geofield_map/geofield_map.info.yml b/modules/geofield_map/geofield_map.info.yml
index 1557293..ee69e9a 100644
--- a/modules/geofield_map/geofield_map.info.yml
+++ b/modules/geofield_map/geofield_map.info.yml
@@ -1,4 +1,5 @@
 name: Geofield Map
+type: module
 description: 'Provides a basic mapping interface for Geofield.'
 version: VERSION
 core: 8.x
diff --git a/modules/geofield_map/lib/Drupal/geofield_map/Plugin/views/style/GeofieldMap.php b/modules/geofield_map/lib/Drupal/geofield_map/Plugin/views/style/GeofieldMap.php
index b49b06f..754ad97 100644
--- a/modules/geofield_map/lib/Drupal/geofield_map/Plugin/views/style/GeofieldMap.php
+++ b/modules/geofield_map/lib/Drupal/geofield_map/Plugin/views/style/GeofieldMap.php
@@ -79,7 +79,6 @@ class GeofieldMap extends StylePluginBase {
   public function buildOptionsForm(&$form, &$form_state) {
     parent::buildOptionsForm($form, $form_state);
 
-  //$handlers = $this->display->handler->getHandlers('field');
     $handlers = $this->displayHandler->getHandlers('field');
     $data_source_options = $popup_source_options = array('' => '<none>');
 
@@ -129,6 +128,10 @@ class GeofieldMap extends StylePluginBase {
    */
   public function render() {
     geophp_load();
+    if (empty($this->view->style_plugin->options['data_source'])) {
+      drupal_set_message(t('A <strong>Data source</strong> must be selected in the Geofield map settings.'), 'error');
+      return '';
+    }
     $style_options = $this->view->style_plugin->options;
 
     $geo_data = (!empty($style_options['data_source'])) ? 'field_' . $style_options['data_source']: NULL;
@@ -138,11 +141,11 @@ class GeofieldMap extends StylePluginBase {
     $map_data = array();
     if ($geo_data) {
 
-      $this->render_fields($this->view->result);
+      $this->renderFields($this->view->result);
 
       foreach ($this->view->result as $id => $result) {
 
-        $geofield = $geofield_handler->get_value($result);
+        $geofield = $geofield_handler->getValue($result);
 
         // RdB: @todo: the above call returns empty, as the Geofield values
         // aren't in $this->view->result[$id], for some reason. So using
@@ -185,7 +188,7 @@ class GeofieldMap extends StylePluginBase {
 
       $map_settings = geofield_map_settings_do($style_options);
       
-      $view_name = $this->view->storage->human_name;
+      $view_name = $this->view->storage->get('label');
       $container_id = drupal_html_id($view_name . '_' . $this->view->current_display);
 
       $js_settings = array(
