diff --git a/focal_point.module b/focal_point.module
index 9a7192b..d84e3d1 100644
--- a/focal_point.module
+++ b/focal_point.module
@@ -80,8 +80,63 @@ function focal_point_entity_update(EntityInterface $entity) {
  * Implements hook_field_widget_form_alter().
  */
 function focal_point_field_widget_form_alter(&$element, FormStateInterface $form_state, $context) {
-  if (get_class($context['widget']) === 'Drupal\image\Plugin\Field\FieldWidget\ImageWidget') {
-    $element['#process'][] = array('Drupal\focal_point\Plugin\Field\FieldWidget\FocalPointImageWidget', 'process');
-    $element['#value_callback'] = array('Drupal\focal_point\Plugin\Field\FieldWidget\FocalPointImageWidget', 'value');
+  if ($context['widget']->getPluginId() == 'image_image') {
+    $focal_point_enabled = $context['widget']->getThirdPartySetting('focal_point', 'enabled');
+    if ($focal_point_enabled) {
+      $element['#process'][] = array('Drupal\focal_point\Plugin\Field\FieldWidget\FocalPointImageWidget', 'process');
+      $element['#value_callback'] = array('Drupal\focal_point\Plugin\Field\FieldWidget\FocalPointImageWidget', 'value');
+      $element['#focal_point'] = $context['widget']->getThirdPartySettings('focal_point');
+    }
+  }
+}
+
+/**
+ * Implements hook_field_widget_third_party_settings_form().
+ */
+function focal_point_field_widget_third_party_settings_form(\Drupal\Core\Field\WidgetInterface $plugin, \Drupal\Core\Field\FieldDefinitionInterface $field_definition, $form_mode, $form, \Drupal\Core\Form\FormStateInterface $form_state) {
+  $element = array();
+  if ($plugin->getPluginId() == 'image_image') {
+    $element['enabled'] = [
+      '#type' => 'checkbox',
+      '#title' => t('Use Focal Point'),
+      '#default_value' => $plugin->getThirdPartySetting('focal_point', 'enabled', FALSE),
+      '#group' => 'focal_point',
+    ];
+    $element['preview_link'] = [
+      '#type' => 'checkbox',
+      '#title' => t('Show Focal Point preview link'),
+      '#default_value' => $plugin->getThirdPartySetting('focal_point', 'preview_link', TRUE),
+      '#states' => array(
+        'visible' => array(
+          ':input[name$="focal_point][enabled]"]' => array('checked' => TRUE),
+        ),
+      ),
+    ];
+    $element['location'] = [
+      '#type' => 'textfield',
+      '#title' => t('Focal Point starting point'),
+      '#default_value' => $plugin->getThirdPartySetting('focal_point', 'location', \Drupal::config('focal_point.settings')->get('default_value')),
+      '#description' => t('Should be in the form "leftoffset,topoffset" where offsets are in percentages. Ex: 25,75.'),
+      '#states' => array(
+        'visible' => array(
+          ':input[name$="focal_point][enabled]"]' => array('checked' => TRUE),
+        ),
+      ),
+    ];
+  }
+  return $element;
+}
+
+/**
+ * Implements hook_field_widget_settings_summary_alter().
+ */
+function focal_point_field_widget_settings_summary_alter(&$summary, $context) {
+  if ($context['widget']->getPluginId() == 'image_image') {
+    if ($context['widget']->getThirdPartySetting('focal_point', 'enabled')) {
+      $summary[] = t('Focal Point: Enabled');
+    }
+    else {
+      $summary[] = t('Focal Point: Disabled');
+    }
   }
 }
diff --git a/src/Plugin/Field/FieldWidget/FocalPointImageWidget.php b/src/Plugin/Field/FieldWidget/FocalPointImageWidget.php
index bd07bdd..d6f488a 100644
--- a/src/Plugin/Field/FieldWidget/FocalPointImageWidget.php
+++ b/src/Plugin/Field/FieldWidget/FocalPointImageWidget.php
@@ -37,7 +37,10 @@ class FocalPointImageWidget extends ImageWidget {
     $item['fids'] = $element['fids']['#value'];
     $element_selector = 'focal-point-' . implode('-', $element['#parents']);
 
-    $default_focal_point_value = isset($item['focal_point']) ? $item['focal_point'] : \Drupal::config('focal_point.settings')->get('default_value');
+    $default_focal_point_value = isset($item['focal_point']) ? $item['focal_point'] : NULL;
+    if (!$default_focal_point_value) {
+      $default_focal_point_value = isset($element['#focal_point']['location']) ? $element['#focal_point']['location'] : \Drupal::config('focal_point.settings')->get('display_link');
+    }
 
     // Add the focal point indicator to preview.
     if (isset($element['preview'])) {
@@ -56,7 +59,7 @@ class FocalPointImageWidget extends ImageWidget {
         'thumbnail' => $element['preview'],
       );
 
-      $display_preview_link = \Drupal::config('focal_point.preview')->get('display_link');
+      $display_preview_link = isset($element['#focal_point']['preview_link']) ? $element['#focal_point']['preview_link'] : \Drupal::config('focal_point.preview')->get('display_link');
 
       // Even for image fields with a cardinality higher than 1 the correct fid
       // can always be found in $item['fids'][0].
