diff --git a/focal_point.module b/focal_point.module
index 52d1061..88411aa 100644
--- a/focal_point.module
+++ b/focal_point.module
@@ -57,6 +57,8 @@ function focal_point_entity_insert(EntityInterface $entity) {
  * Saves the focal point value for the image file entity about to be saved.
  */
 function focal_point_entity_update(EntityInterface $entity) {
+  // @todo: can this be handled entirely in the form element rather than this hook? I dont think so, but find out...
+
   // Only worry about entities that are fieldable.
   if ($entity instanceof FieldableEntityInterface) {
     // Loop all the fields and save focal point values for images.
@@ -64,8 +66,9 @@ function focal_point_entity_update(EntityInterface $entity) {
       if ($field->getType() == 'image' && $entity->hasField($field->getName())) {
         // Loop through all values for this field. Its cardinality might be > 1.
         foreach ($entity->{$field->getName()} as $item) {
-          if (isset($item->focal_point)) {
-            list($x, $y) = explode(',', $item->focal_point);
+          $values = $item->getValue();
+          if (isset($values['focal_point'])) {
+            list($x, $y) = explode(',', $values['focal_point']);
             $crop_type = \Drupal::config('focal_point.settings')->get('crop_type');
             $crop = \Drupal::service('focal_point.manager')->getCropEntity($item->entity, $crop_type);
             \Drupal::service('focal_point.manager')->saveCropEntity($x, $y, $item->width, $item->height, $crop);
diff --git a/js/focal_point.js b/js/focal_point.js
index 9c304a1..b0ac13e 100644
--- a/js/focal_point.js
+++ b/js/focal_point.js
@@ -41,6 +41,7 @@
           });
         }, 0);
 
+        //this.$field.prependTo(this.$field.closest('.image-preview').next('.image-widget-data'));
       });
     }
 
diff --git a/src/Element/FocalPoint.php b/src/Element/FocalPoint.php
new file mode 100644
index 0000000..68384f7
--- /dev/null
+++ b/src/Element/FocalPoint.php
@@ -0,0 +1,229 @@
+<?php
+
+namespace Drupal\focal_point\Element;
+
+use Drupal\Core\Form\FormStateInterface;
+use Drupal\Core\Render\Element\FormElement;
+use Drupal\Core\StringTranslation\TranslatableMarkup;
+use Drupal\crop\Entity\Crop;
+use Drupal\Core\Url;
+
+/**
+ * Focal point render element.
+ *
+ * @RenderElement("focal_point")
+ */
+class FocalPoint extends FormElement {
+
+  const PREVIEW_TOKEN_NAME = 'focal_point_preview';
+
+  /**
+   * {@inheritdoc}
+   */
+  public function getInfo() {
+    $class = get_class($this);
+
+    return [
+      '#input' => TRUE,
+      '#default_value' => NULL,
+      '#process' => [
+        [$class, 'processFocalPoint']
+      ],
+      '#element_validate' => [
+        [$class, 'validateFocalPoint']
+      ],
+      '#file_id' => NULL,
+      '#display_preview_link' => TRUE,
+      '#theme_wrappers' => ['form_element'],
+    ];
+  }
+
+  /**
+   * Creates the focal point element.
+   *
+   * @param array $element
+   *   The render element.
+   * @param \Drupal\Core\Form\FormStateInterface $form_state
+   *   The form state.
+   * @param array $complete_form
+   *   Complete form.
+   *
+   * @return array
+   *   The render element.
+   *
+   * @todo Implement https://www.drupal.org/node/2848511
+   *   Focal Point offsets not accessible by keyboard.
+   */
+  public static function processFocalPoint(&$element, FormStateInterface $form_state, &$complete_form) {
+    $element_selectors = [
+      'focal_point' => 'focal-point-' . implode('-', $element['#parents']),
+    ];
+
+    $element['indicator'] = self::createFocalPointIndicator($element['#delta'], $element_selectors);
+    $element['preview_thumbnail'] = $element['#selection_element'];
+
+    if ($element['#display_preview_link'] && !empty($element['#file_id'])) {
+      $element['preview_link'] = self::createPreviewLink($element['#file_id'], $element['#field_name'], $element_selectors, $element['#default_value']);
+    }
+
+    // Add the focal point field.
+    $element['focal_point'] = self::createFocalPointField($element['#field_name'], $element_selectors, $element['#value']);
+
+    return $element;
+  }
+
+  /**
+   * {@inheritdoc}
+   *
+   * Validation Callback; Focal Point process field.
+   */
+  public function validateFocalPoint($element, FormStateInterface $form_state) {
+    /** @var \Drupal\focal_point\FocalPointManager $focal_point_manager */
+    $focal_point_manager = self::getFocalPointManager();
+
+    if (empty($element['#value']) || (TRUE !== $focal_point_manager->validateFocalPoint($element['#value']))) {
+      $replacements = ['@title' => strtolower($element['#title'])];
+      $form_state->setError($element, new TranslatableMarkup('The @title field should be in the form "leftoffset,topoffset" where offsets are in percentages. Ex: 25,75.', $replacements));
+    }
+  }
+
+  /**
+   * Create and return a token to use for accessing the preview page.
+   *
+   * @return string
+   *   A valid token.
+   *
+   * @codeCoverageIgnore
+   */
+  public static function getPreviewToken() {
+    return \Drupal::csrfToken()->get(self::PREVIEW_TOKEN_NAME);
+  }
+
+  /**
+   * Validate a preview token.
+   *
+   * @param string $token
+   *   A drupal generated token.
+   *
+   * @return bool
+   *   True if the token is valid.
+   *
+   * @codeCoverageIgnore
+   */
+  public static function validatePreviewToken($token) {
+    return \Drupal::csrfToken()->validate($token, self::PREVIEW_TOKEN_NAME);
+  }
+
+  /**
+   * Create the focal point form element.
+   *
+   * @param string $field_name
+   *   The name of the field element for the image field.
+   * @param array $element_selectors
+   *   The element selectors to ultimately be used by javascript.
+   * @param string $default_focal_point_value
+   *   The default focal point value in the form x,y.
+   *
+   * @return array The preview link form element.
+   *   The preview link form element.
+   */
+  private static function createFocalPointField($field_name, $element_selectors, $default_focal_point_value) {
+    $field = [
+      '#type' => 'textfield',
+      '#title' => new TranslatableMarkup('Focal point'),
+      '#description' => new TranslatableMarkup('Specify the focus of this image in the form "leftoffset,topoffset" where offsets are in percents. Ex: 25,75'),
+      '#default_value' => $default_focal_point_value,
+      '#attributes' => [
+        'class' => ['focal-point', $element_selectors['focal_point']],
+        'data-selector' => $element_selectors['focal_point'],
+        'data-field-name' => $field_name,
+      ],
+      '#attached' => [
+        'library' => ['focal_point/drupal.focal_point'],
+      ],
+    ];
+
+    return $field;
+  }
+
+  /**
+   * Create the focal point form element.
+   *
+   * @param int $delta
+   *   The delta of the image field widget.
+   * @param array $element_selectors
+   *   The element selectors to ultimately be used by javascript.
+   *
+   * @return array
+   *   The focal point field form element.
+   */
+  private static function createFocalPointIndicator($delta, $element_selectors) {
+    $indicator = [
+      '#type' => 'html_tag',
+      '#tag' => 'div',
+      '#attributes' => [
+        'class' => ['focal-point-indicator'],
+        'data-selector' => $element_selectors['focal_point'],
+        'data-delta' => $delta,
+      ],
+    ];
+
+    return $indicator;
+  }
+
+  /**
+   * Create the preview link form element.
+   *
+   * @param int $fid
+   *   The fid of the image file.
+   * @param string $field_name
+   *   The name of the field element for the image field.
+   * @param array $element_selectors
+   *   The element selectors to ultimately be used by javascript.
+   * @param string $default_focal_point_value
+   *   The default focal point value in the form x,y.
+   *
+   * @return array The preview link form element.
+   *   The preview link form element.
+   */
+  private static function createPreviewLink($fid, $field_name, $element_selectors, $default_focal_point_value) {
+    // Replace comma (,) with an x to make javascript handling easier.
+    $preview_focal_point_value = str_replace(',', 'x', $default_focal_point_value);
+
+    // Create a token to be used during an access check on the preview page.
+    $token = self::getPreviewToken();
+
+    $preview_link = [
+      '#type' => 'link',
+      '#title' => new TranslatableMarkup('Preview'),
+      '#url' => new Url('focal_point.preview',
+        [
+          'fid' => $fid,
+          'focal_point_value' => $preview_focal_point_value,
+        ],
+        [
+          'query' => ['focal_point_token' => $token],
+        ]),
+      '#attributes' => [
+        'class' => ['focal-point-preview-link'],
+        'data-selector' => $element_selectors['focal_point'],
+        'data-field-name' => $field_name,
+        'target' => '_blank',
+      ],
+    ];
+
+    return $preview_link;
+  }
+
+  /**
+   * Returns a focal point manager object.
+   *
+   * @return mixed
+   *
+   * @see \Drupal\focal_point\FocalPointManager
+   */
+  private static function getFocalPointManager() {
+    return \Drupal::service('focal_point.manager');
+  }
+
+}
diff --git a/src/FocalPointManager.php b/src/FocalPointManager.php
index 591210d..4b8d0d1 100644
--- a/src/FocalPointManager.php
+++ b/src/FocalPointManager.php
@@ -104,4 +104,38 @@ class FocalPointManager implements FocalPointManagerInterface {
     return $crop;
   }
 
+  /**
+   * {@inheritdoc}
+   */
+  public function getFocalPoint($fid) {
+    $focal_point = NULL;
+
+    /** @var \Drupal\file\Entity\File $file */
+    $file = \Drupal::service('entity_type.manager')
+      ->getStorage('file')
+      ->load($fid);
+
+    if (!is_null($file)) {
+      /** @var \Drupal\core\Image\Image $image */
+      $image = \Drupal::service('image.factory')->get($file->getFileUri());
+      if ($image->isValid()) {
+        $crop_type = \Drupal::config('focal_point.settings')->get('crop_type');
+        $crop = Crop::findCrop($file->getFileUri(), $crop_type);
+        if ($crop) {
+          $anchor = \Drupal::service('focal_point.manager')
+            ->absoluteToRelative($crop->x->value, $crop->y->value, $image->getWidth(), $image->getHeight());
+          $focal_point = "{$anchor['x']},{$anchor['y']}";
+        }
+      }
+      else {
+        throw new \InvalidArgumentException('Cannot get the focal point of a file that is not an image.');
+      }
+    }
+    else {
+      \Drupal::logger('focal_point')->notice("Attempted to get a focal point value for an invalid or temporary file.");
+    }
+
+    return $focal_point;
+  }
+
 }
diff --git a/src/FocalPointManagerInterface.php b/src/FocalPointManagerInterface.php
index 86a4a1d..a7fdf8e 100644
--- a/src/FocalPointManagerInterface.php
+++ b/src/FocalPointManagerInterface.php
@@ -4,6 +4,7 @@ namespace Drupal\focal_point;
 
 use Drupal\file\FileInterface;
 use Drupal\crop\CropInterface;
+use Psr\Log\InvalidArgumentException;
 
 /**
  * Defines an interface for focal point manager.
@@ -106,4 +107,24 @@ interface FocalPointManagerInterface {
    */
   public function saveCropEntity($x, $y, $width, $height, CropInterface $crop);
 
+  /**
+   * Gets the focal point value based on a given file entity id.
+   *
+   * Returns a focal point value as a string in the form x,y where x and y are
+   * offsets (in percents) from the top and left of the image. If no file is
+   * found for the $fid then NULL is returned. If the fid is used to
+   * successfully load a file that is not an image then an exception is thrown.
+   *
+   * @param int $fid
+   *   The fid for the file entity in question.
+   *
+   * @return string | NULL
+   *   A focal point value as a string in the form x,y where x and y are
+   *   offsets (in percents) from the top and left of the image. If no focal
+   *   point value is found, NULL is returned.
+   *
+   * @throws /InvalidArgumentException
+   */
+  public function getFocalPoint($fid);
+
 }
diff --git a/src/Plugin/Field/FieldWidget/FocalPointImageWidget.php b/src/Plugin/Field/FieldWidget/FocalPointImageWidget.php
index c0eb137..b9dcc13 100644
--- a/src/Plugin/Field/FieldWidget/FocalPointImageWidget.php
+++ b/src/Plugin/Field/FieldWidget/FocalPointImageWidget.php
@@ -3,11 +3,8 @@
 namespace Drupal\focal_point\Plugin\Field\FieldWidget;
 
 use Drupal\Core\Field\FieldItemListInterface;
-use Drupal\Core\StringTranslation\TranslatableMarkup;
-use Drupal\crop\Entity\Crop;
 use Drupal\Core\Form\FormStateInterface;
 use Drupal\image\Plugin\Field\FieldWidget\ImageWidget;
-use Drupal\Core\Url;
 
 /**
  * Plugin implementation of the 'image_focal_point' widget.
@@ -22,8 +19,6 @@ use Drupal\Core\Url;
  */
 class FocalPointImageWidget extends ImageWidget {
 
-  const PREVIEW_TOKEN_NAME = 'focal_point_preview';
-
   /**
    * {@inheritdoc}
    */
@@ -32,12 +27,62 @@ class FocalPointImageWidget extends ImageWidget {
       'progress_indicator' => 'throbber',
       'preview_image_style' => 'thumbnail',
       'preview_link' => TRUE,
-      'offsets' => '50,50',
+      'offsets' => \Drupal::config('focal_point.settings')->get('default_value'),
     ] + parent::defaultSettings();
   }
 
   /**
    * {@inheritdoc}
+   *
+   * Processes an image_focal_point field Widget.
+   *
+   * Expands the image_focal_point Widget to include the focal_point field.
+   * This method is assigned as a #process callback in formElement() method.
+   */
+  public static function process($element, FormStateInterface $form_state, $form) {
+    $element = parent::process($element, $form_state, $form);
+
+    $fid = isset($element['#default_value']['target_id']) ? $element['#default_value']['target_id'] : '';
+
+    $focal_point = $form_state->getValue([$element['#field_name'], $element['#delta'], 'focal_point']);
+    $focal_point = !empty($focal_point) ? $focal_point : $element['#default_value']['focal_point'];
+
+    // Give the new focal point element the weight that the preview thumbnail
+    // used to have.
+    $weight = isset($element['preview']['#weight']) ? $element['preview']['#weight'] : 0;
+    unset($element['preview']['#weight']);
+
+    // Replace the image preview element with the focal point element.
+    $element['focal_point'] = array(
+      '#type' => 'focal_point',
+      '#delta' => $element['#delta'],
+      '#selection_element' => $element['preview'], // @todo: rename this key; @todo: make this optional (or remove this?) - the element should render its own thumbnail so that we arent so coupled to image widget
+      '#default_value' => $focal_point,
+      '#file_id' => $fid,
+      '#weight' => $weight,
+      '#display_preview_link' => $element['#default_value']['focal_point_preview_link'],
+      '#tree' => FALSE,
+    );
+
+    unset($element['preview']);
+
+    return $element;
+  }
+
+  /**
+   * {@inheritdoc}
+   */
+  public static function value($element, $input, FormStateInterface $form_state) {
+    $return = parent::value($element, $input, $form_state);
+
+    $form_state_input = $form_state->getUserInput();
+    $return['focal_point'] = !empty($form_state_input['focal_point']) ? $form_state_input['focal_point'] : self::getFocalPointManager()->getFocalPoint($return['target_id']);
+
+    return $return;
+  }
+
+  /**
+   * {@inheritdoc}
    */
   public function settingsForm(array $form, FormStateInterface $form_state) {
     $form = parent::settingsForm($form, $form_state);
@@ -47,7 +92,7 @@ class FocalPointImageWidget extends ImageWidget {
     unset($form['preview_image_style']['#empty_option']);
     // @todo Implement https://www.drupal.org/node/2872960
     //   The preview image should not be generated using a focal point effect
-    //   and should maintain teh aspect ratio of the original image.
+    //   and should maintain the aspect ratio of the original image.
     $form['preview_image_style']['#description'] = t(
       $form['preview_image_style']['#description']->getUntranslatedString() . "<br/>Do not choose an image style that alters the aspect ratio of the original image nor an image style that uses a focal point effect.",
       $form['preview_image_style']['#description']->getArguments(),
@@ -96,250 +141,22 @@ class FocalPointImageWidget extends ImageWidget {
    */
   public function formElement(FieldItemListInterface $items, $delta, array $element, array &$form, FormStateInterface $form_state) {
     $element = parent::formElement($items, $delta, $element, $form, $form_state);
-    $element['#process'][] = [static::class, 'process'];
-    $element['#focal_point'] = [
-      'preview_link' => $this->getSetting('preview_link'),
-      'offsets' => $this->getSetting('offsets'),
-    ];
 
-    return $element;
-  }
-
-  /**
-   * {@inheritdoc}
-   *
-   * Processes an image_focal_point field Widget.
-   *
-   * Expands the image_focal_point Widget to include the focal_point field.
-   * This method is assigned as a #process callback in formElement() method.
-   *
-   * @todo Implement https://www.drupal.org/node/2657592
-   *   Convert focal point selector tool into a standalone form element.
-   * @todo Implement https://www.drupal.org/node/2848511
-   *   Focal Point offsets not accessible by keyboard.
-   */
-  public static function process($element, FormStateInterface $form_state, $form) {
-    $element = parent::process($element, $form_state, $form);
-
-    $item = $element['#value'];
-    $item['fids'] = $element['fids']['#value'];
-    $element_selectors = [
-      'focal_point' => 'focal-point-' . implode('-', $element['#parents']),
-    ];
-
-    $default_focal_point_value = isset($item['focal_point']) ? $item['focal_point'] : $element['#focal_point']['offsets'];
-
-    // Add the focal point indicator to preview.
-    if (isset($element['preview'])) {
-      $preview = [
-        'indicator' => self::createFocalPointIndicator($element['#delta'], $element_selectors),
-        'thumbnail' => $element['preview'],
-      ];
-
-      // Even for image fields with a cardinality higher than 1 the correct fid
-      // can always be found in $item['fids'][0].
-      $fid = isset($item['fids'][0]) ? $item['fids'][0] : '';
-      if ($element['#focal_point']['preview_link'] && !empty($fid)) {
-        $preview['preview_link'] = self::createPreviewLink($fid, $element['#field_name'], $element_selectors, $default_focal_point_value);
-      }
-
-      // Use the existing preview weight value so that the focal point indicator
-      // and thumbnail appear in the correct order.
-      $preview['#weight'] = isset($element['preview']['#weight']) ? $element['preview']['#weight'] : 0;
-      unset($preview['thumbnail']['#weight']);
-
-      $element['preview'] = $preview;
-    }
-
-    // Add the focal point field.
-    $element['focal_point'] = self::createFocalPointField($element['#field_name'], $element_selectors, $default_focal_point_value);
+    $element['#default_value']['focal_point'] = $this->getSetting('offsets');
+    $element['#default_value']['focal_point_preview_link'] = $this->getSetting('preview_link');
 
     return $element;
   }
 
   /**
-   * {@inheritdoc}
+   * Returns a focal point manager object.
    *
-   * Form API callback. Retrieves the value for the file_generic field element.
+   * @return mixed
    *
-   * This method is assigned as a #value_callback in formElement() method.
+   * @see \Drupal\focal_point\FocalPointManager
    */
-  public static function value($element, $input, FormStateInterface $form_state) {
-    $return = parent::value($element, $input, $form_state);
-
-    // When an element is loaded, focal_point needs to be set. During a form
-    // submission the value will already be there.
-    if (isset($return['target_id']) && !isset($return['focal_point'])) {
-      /** @var \Drupal\file\FileInterface $file */
-      $file = \Drupal::service('entity_type.manager')
-        ->getStorage('file')
-        ->load($return['target_id']);
-      if ($file) {
-        $crop_type = \Drupal::config('focal_point.settings')->get('crop_type');
-        $crop = Crop::findCrop($file->getFileUri(), $crop_type);
-        if ($crop) {
-          $anchor = \Drupal::service('focal_point.manager')
-            ->absoluteToRelative($crop->x->value, $crop->y->value, $return['width'], $return['height']);
-          $return['focal_point'] = "{$anchor['x']},{$anchor['y']}";
-        }
-      }
-      else {
-        \Drupal::logger('focal_point')->notice("Attempted to get a focal point value for an invalid or temporary file.");
-        $return['focal_point'] = $element['#focal_point']['offsets'];
-      }
-    }
-    return $return;
-  }
-
-  /**
-   * {@inheritdoc}
-   *
-   * Validation Callback; Focal Point process field.
-   */
-  public static function validateFocalPoint($element, FormStateInterface $form_state) {
-    if (empty($element['#value']) || (FALSE === \Drupal::service('focal_point.manager')->validateFocalPoint($element['#value']))) {
-      $replacements = ['@title' => strtolower($element['#title'])];
-      $form_state->setError($element, new TranslatableMarkup('The @title field should be in the form "leftoffset,topoffset" where offsets are in percentages. Ex: 25,75.', $replacements));
-    }
-  }
-
-  /**
-   * {@inheritdoc}
-   *
-   * Validation Callback; Focal Point widget setting.
-   */
-  public function validateFocalPointWidget(array &$element, FormStateInterface $form_state) {
-    static::validateFocalPoint($element, $form_state);
-  }
-
-  /**
-   * Create and return a token to use for accessing the preview page.
-   *
-   * @return string
-   *   A valid token.
-   *
-   * @codeCoverageIgnore
-   */
-  public static function getPreviewToken() {
-    return \Drupal::csrfToken()->get(self::PREVIEW_TOKEN_NAME);
-  }
-
-  /**
-   * Validate a preview token.
-   *
-   * @param string $token
-   *   A drupal generated token.
-   *
-   * @return bool
-   *   True if the token is valid.
-   *
-   * @codeCoverageIgnore
-   */
-  public static function validatePreviewToken($token) {
-    return \Drupal::csrfToken()->validate($token, self::PREVIEW_TOKEN_NAME);
-  }
-
-  /**
-   * Create the focal point form element.
-   *
-   * @param string $field_name
-   *   The name of the field element for the image field.
-   * @param array $element_selectors
-   *   The element selectors to ultimately be used by javascript.
-   * @param string $default_focal_point_value
-   *   The default focal point value in the form x,y.
-   *
-   * @return array The preview link form element.
-   *   The preview link form element.
-   */
-  private static function createFocalPointField($field_name, $element_selectors, $default_focal_point_value) {
-    $field = [
-      '#type' => 'textfield',
-      '#title' => new TranslatableMarkup('Focal point'),
-      '#description' => new TranslatableMarkup('Specify the focus of this image in the form "leftoffset,topoffset" where offsets are in percents. Ex: 25,75'),
-      '#default_value' => $default_focal_point_value,
-      '#element_validate' => [[static::class, 'validateFocalPoint']],
-      '#attributes' => [
-        'class' => ['focal-point', $element_selectors['focal_point']],
-        'data-selector' => $element_selectors['focal_point'],
-        'data-field-name' => $field_name,
-      ],
-      '#attached' => [
-        'library' => ['focal_point/drupal.focal_point'],
-      ],
-    ];
-
-    return $field;
+  private static function getFocalPointManager() {
+    return \Drupal::service('focal_point.manager');
   }
 
-  /**
-   * Create the focal point form element.
-   *
-   * @param int $delta
-   *   The delta of the image field widget.
-   * @param array $element_selectors
-   *   The element selectors to ultimately be used by javascript.
-   *
-   * @return array
-   *   The focal point field form element.
-   */
-  private static function createFocalPointIndicator($delta, $element_selectors) {
-    $indicator = [
-      '#type' => 'html_tag',
-      '#tag' => 'div',
-      '#attributes' => [
-        'class' => ['focal-point-indicator'],
-        'data-selector' => $element_selectors['focal_point'],
-        'data-delta' => $delta,
-      ],
-    ];
-
-    return $indicator;
-  }
-
-  /**
-   * Create the preview link form element.
-   *
-   * @param int $fid
-   *   The fid of the image file.
-   * @param string $field_name
-   *   The name of the field element for the image field.
-   * @param array $element_selectors
-   *   The element selectors to ultimately be used by javascript.
-   * @param string $default_focal_point_value
-   *   The default focal point value in the form x,y.
-   *
-   * @return array The preview link form element.
-   *   The preview link form element.
-   */
-  private static function createPreviewLink($fid, $field_name, $element_selectors, $default_focal_point_value) {
-    // Replace comma (,) with an x to make javascript handling easier.
-    $preview_focal_point_value = str_replace(',', 'x', $default_focal_point_value);
-
-    // Create a token to be used during an access check on the preview page.
-    $token = self::getPreviewToken();
-
-    $preview_link = [
-      '#type' => 'link',
-      '#title' => new TranslatableMarkup('Preview'),
-      '#url' => new Url('focal_point.preview',
-        [
-          'fid' => $fid,
-          'focal_point_value' => $preview_focal_point_value,
-        ],
-        [
-          'query' => ['focal_point_token' => $token],
-        ]),
-      '#attributes' => [
-        'class' => ['focal-point-preview-link'],
-        'data-selector' => $element_selectors['focal_point'],
-        'data-field-name' => $field_name,
-        'target' => '_blank',
-      ],
-    ];
-
-    return $preview_link;
-  }
-
-
 }
