diff --git a/modules/varbase_buttons_block/src/Plugin/Field/FieldFormatter/VarbaseBootstrapButtonLinkFormatter.php b/modules/varbase_buttons_block/src/Plugin/Field/FieldFormatter/VarbaseBootstrapButtonLinkFormatter.php
index 81eb683..1420165 100644
--- a/modules/varbase_buttons_block/src/Plugin/Field/FieldFormatter/VarbaseBootstrapButtonLinkFormatter.php
+++ b/modules/varbase_buttons_block/src/Plugin/Field/FieldFormatter/VarbaseBootstrapButtonLinkFormatter.php
@@ -9,6 +9,7 @@ use Drupal\Core\Path\PathValidatorInterface;
 use Drupal\Core\Utility\Token;
 use Drupal\Core\Config\Config;
 use Drupal\link\Plugin\Field\FieldFormatter\LinkFormatter;
+use Drupal\linkit\Plugin\Field\FieldFormatter\LinkitFormatter;
 use Symfony\Component\DependencyInjection\ContainerInterface;
 
 /**
@@ -22,7 +23,7 @@ use Symfony\Component\DependencyInjection\ContainerInterface;
  *   }
  * )
  */
-class VarbaseBootstrapButtonLinkFormatter extends LinkFormatter {
+class VarbaseBootstrapButtonLinkFormatter extends LinkitFormatter {
 
   /**
    * The token replacement instance.
@@ -38,52 +39,16 @@ class VarbaseBootstrapButtonLinkFormatter extends LinkFormatter {
    */
   protected $varbaseBootstrapButtonLinkConfigs;
 
-  /**
-   * Constructs a new VarbaseBootstrapButtonLinkFormatter.
-   *
-   * @param string $plugin_id
-   *   The plugin_id for the formatter.
-   * @param mixed $plugin_definition
-   *   The plugin implementation definition.
-   * @param \Drupal\Core\Field\FieldDefinitionInterface $field_definition
-   *   The definition of the field to which the formatter is associated.
-   * @param array $settings
-   *   The formatter settings.
-   * @param string $label
-   *   The formatter label display setting.
-   * @param string $view_mode
-   *   The view mode.
-   * @param array $third_party_settings
-   *   Third party settings.
-   * @param \Drupal\Core\Path\PathValidatorInterface $path_validator
-   *   The path validator service.
-   * @param \Drupal\Core\Utility\Token $token
-   *   The token replacement instance.
-   * @param \Drupal\Core\Config\Config $varbase_buttons_block_configs
-   *   The varbase_buttons_block.settings configuration factory object.
-   */
-  public function __construct($plugin_id, $plugin_definition, FieldDefinitionInterface $field_definition, array $settings, $label, $view_mode, array $third_party_settings, PathValidatorInterface $path_validator, Token $token, Config $varbase_buttons_block_configs) {
-    parent::__construct($plugin_id, $plugin_definition, $field_definition, $settings, $label, $view_mode, $third_party_settings, $path_validator);
-    $this->token = $token;
-    $this->varbaseBootstrapButtonLinkConfigs = $varbase_buttons_block_configs;
-  }
-
   /**
    * {@inheritdoc}
    */
   public static function create(ContainerInterface $container, array $configuration, $plugin_id, $plugin_definition) {
-    return new static(
-      $plugin_id,
-      $plugin_definition,
-      $configuration['field_definition'],
-      $configuration['settings'],
-      $configuration['label'],
-      $configuration['view_mode'],
-      $configuration['third_party_settings'],
-      $container->get('path.validator'),
-      $container->get('token'),
-      $container->get('config.factory')->get('varbase_buttons_block.settings')
-    );
+
+    $instance = parent::create($container, $configuration, $plugin_id, $plugin_definition);
+    $instance->token = $container->get('token');
+    $instance->varbaseBootstrapButtonLinkConfigs = $container->get('config.factory')->get('varbase_buttons_block.settings');
+    
+    return $instance;
   }
 
   /**
@@ -174,7 +139,7 @@ class VarbaseBootstrapButtonLinkFormatter extends LinkFormatter {
    * {@inheritdoc}
    */
   public function settingsSummary() {
-    $summary = [];
+    $summary = parent::settingsSummary();
 
     $summary[] = $this->t('Color: @text', ['@text' => (($this->getSetting('color') !== '_none') ? $this->getSetting('color') : $this->t('None'))]);
     $summary[] = $this->t('Outline: @text', ['@text' => (($this->getSetting('outline')) ? $this->t('Yes') : $this->t('No'))]);
@@ -190,7 +155,7 @@ class VarbaseBootstrapButtonLinkFormatter extends LinkFormatter {
    * {@inheritdoc}
    */
   public function viewElements(FieldItemListInterface $items, $langcode) {
-    $element = [];
+    $elements = parent::viewElements($items, $langcode);
     $settings = $this->getSettings();
     $entity = $items->getEntity();
 
@@ -203,9 +168,6 @@ class VarbaseBootstrapButtonLinkFormatter extends LinkFormatter {
       // Load links options.
       $options = $url->getOptions();
 
-      // Load Link Title.
-      $link_title = $this->token->replace($item->title, [$entity->getEntityTypeId() => $entity], ['clear' => TRUE]);
-
       $attributes = [];
       $btn_class = [];
 
@@ -253,18 +215,13 @@ class VarbaseBootstrapButtonLinkFormatter extends LinkFormatter {
       }
 
       // Create output of the button link.
-      $element[$delta] = [
-        '#type' => 'link',
-        '#title' => $link_title,
-        '#url' => $url,
-        '#options' => ['attributes' => $attributes],
-      ];
+      $elements[$delta]['#options'] = ['attributes' => $attributes];
     }
 
     // Adding caching tag for cleaning.
-    $element['#cache']['tags'][] = 'varbase_buttons_block__field_formatter';
+    $elements['#cache']['tags'][] = 'varbase_buttons_block__field_formatter';
 
-    return $element;
+    return $elements;
   }
 
 }
diff --git a/modules/varbase_buttons_block/src/Plugin/Field/FieldWidget/VarbaseBootstrapButtonLinkWidget.php b/modules/varbase_buttons_block/src/Plugin/Field/FieldWidget/VarbaseBootstrapButtonLinkWidget.php
index 31fe378..a0b206b 100644
--- a/modules/varbase_buttons_block/src/Plugin/Field/FieldWidget/VarbaseBootstrapButtonLinkWidget.php
+++ b/modules/varbase_buttons_block/src/Plugin/Field/FieldWidget/VarbaseBootstrapButtonLinkWidget.php
@@ -3,10 +3,13 @@
 namespace Drupal\varbase_buttons_block\Plugin\Field\FieldWidget;
 
 use Drupal\Core\Config\Config;
+use Drupal\Core\Entity\EntityTypeManagerInterface;
 use Drupal\Core\Field\FieldDefinitionInterface;
 use Drupal\link\Plugin\Field\FieldWidget\LinkWidget;
 use Drupal\Core\Field\FieldItemListInterface;
 use Drupal\Core\Form\FormStateInterface;
+use Drupal\Core\Session\AccountProxyInterface;
+use Drupal\linkit\Plugin\Field\FieldWidget\LinkitWidget;
 use Symfony\Component\DependencyInjection\ContainerInterface;
 
 /**
@@ -20,7 +23,7 @@ use Symfony\Component\DependencyInjection\ContainerInterface;
  *   }
  * )
  */
-class VarbaseBootstrapButtonLinkWidget extends LinkWidget {
+class VarbaseBootstrapButtonLinkWidget extends LinkitWidget {
 
   /**
    * Contains the varbase_buttons_block.settings configuration object.
@@ -45,8 +48,8 @@ class VarbaseBootstrapButtonLinkWidget extends LinkWidget {
    * @param \Drupal\Core\Config\Config $varbase_buttons_block_configs
    *   The varbase_buttons_block.settings configuration factory object.
    */
-  public function __construct($plugin_id, $plugin_definition, FieldDefinitionInterface $field_definition, array $settings, array $third_party_settings, Config $varbase_buttons_block_configs) {
-    parent::__construct($plugin_id, $plugin_definition, $field_definition, $settings, $third_party_settings);
+  public function __construct($plugin_id, $plugin_definition, FieldDefinitionInterface $field_definition, array $settings, array $third_party_settings, AccountProxyInterface $currentUser, EntityTypeManagerInterface $entityTypeManager, Config $varbase_buttons_block_configs) {
+    parent::__construct($plugin_id, $plugin_definition, $field_definition, $settings, $third_party_settings, $currentUser, $entityTypeManager);
     $this->varbaseBootstrapButtonLinkConfigs = $varbase_buttons_block_configs;
   }
 
@@ -60,6 +63,8 @@ class VarbaseBootstrapButtonLinkWidget extends LinkWidget {
       $configuration['field_definition'],
       $configuration['settings'],
       $configuration['third_party_settings'],
+      $container->get('current_user'),
+      $container->get('entity_type.manager'),
       $container->get('config.factory')->get('varbase_buttons_block.settings')
     );
   }
@@ -89,13 +94,13 @@ class VarbaseBootstrapButtonLinkWidget extends LinkWidget {
     $override_block_level = (bool) $this->varbaseBootstrapButtonLinkConfigs->get('override_block_level');
     $override_disabled = (bool) $this->varbaseBootstrapButtonLinkConfigs->get('override_disabled');
 
-    $element['options'] = [
+    $element['button_options'] = [
       '#type' => 'details',
       '#title' => $this->t('Button Options'),
       '#access' => ($override_color || $override_outline || $override_size  || $override_target || $override_block_level || $override_disabled),
     ];
 
-    $element['options']['color'] = [
+    $element['button_options']['color'] = [
       '#type' => 'select',
       '#title' => $this->t('Color'),
       '#default_value' => $items[$delta]->options['color'] ?? $button_default_color,
@@ -104,7 +109,7 @@ class VarbaseBootstrapButtonLinkWidget extends LinkWidget {
       '#access' => $override_color,
     ];
 
-    $element['options']['size'] = [
+    $element['button_options']['size'] = [
       '#type' => 'select',
       '#title' => $this->t('Size'),
       '#default_value' => $items[$delta]->options['size'] ?? $button_default_size,
@@ -113,7 +118,7 @@ class VarbaseBootstrapButtonLinkWidget extends LinkWidget {
       '#access' => $override_size,
     ];
 
-    $element['options']['outline'] = [
+    $element['button_options']['outline'] = [
       '#type' => 'checkbox',
       '#title' => $this->t('Outline'),
       '#default_value' => $items[$delta]->options['outline'] ?? $button_default_outline,
@@ -121,7 +126,7 @@ class VarbaseBootstrapButtonLinkWidget extends LinkWidget {
       '#access' => $override_outline,
     ];
 
-    $element['options']['target'] = [
+    $element['button_options']['target'] = [
       '#type' => 'checkbox',
       '#title' => $this->t('Open in a new window'),
       '#default_value' => $items[$delta]->options['target'] ?? $button_default_target,
@@ -129,7 +134,7 @@ class VarbaseBootstrapButtonLinkWidget extends LinkWidget {
       '#access' => $override_target,
     ];
 
-    $element['options']['block_level'] = [
+    $element['button_options']['block_level'] = [
       '#type' => 'checkbox',
       '#title' => $this->t('Block level'),
       '#default_value' => $items[$delta]->options['block_level'] ?? $button_default_block_level,
@@ -137,7 +142,7 @@ class VarbaseBootstrapButtonLinkWidget extends LinkWidget {
       '#access' => $override_block_level,
     ];
 
-    $element['options']['disabled'] = [
+    $element['button_options']['disabled'] = [
       '#type' => 'checkbox',
       '#title' => $this->t('Disabled'),
       '#default_value' => $items[$delta]->options['disabled'] ?? $button_default_disabled,
@@ -148,4 +153,13 @@ class VarbaseBootstrapButtonLinkWidget extends LinkWidget {
     return $element;
   }
 
+  /**
+   * {@inheritdoc}
+   */
+  public function massageFormValues(array $values, array $form, FormStateInterface $form_state) {
+    foreach ($values as &$value) {
+      $value += ['options' => array_merge($value['button_options'], $value['attributes'])];
+    }
+    return $values;
+  }
 }
