diff --git a/language_combination.module b/language_combination.module
index bd68aa7..95d0ca5 100644
--- a/language_combination.module
+++ b/language_combination.module
@@ -54,7 +54,7 @@ function language_combination_form_views_exposed_form_alter(&$form, FormStateInt
   }, \Drupal::languageManager()->getLanguages());
   $children = Element::children($form);
   foreach ($children as $child) {
-    if (preg_match("/(source_languages|target_languages)/i", $child) === 1) {
+    if (preg_match("/(language_source|language_target)/i", $child) === 1) {
       $input        = $form_state->getUserInput();
       $multiple     = $form[$child]['#multiple'];
       $options      = !$multiple ? ['All' => '- Any -'] + $languages : $languages;
@@ -81,8 +81,8 @@ function language_combination_views_data_alter(array &$data) {
       foreach ($fields_list as $name => $values) {
         $key = $entity_type . '__' . $name;
         $data[$key][$name]['filter']['id'] = 'language';
-        $data[$key][$name . '_source_languages']['filter']['id'] = 'language';
-        $data[$key][$name . '_target_languages']['filter']['id'] = 'language';
+        $data[$key][$name . '_language_source']['filter']['id'] = 'language';
+        $data[$key][$name . '_language_target']['filter']['id'] = 'language';
       }
     }
   }
diff --git a/src/Plugin/Field/FieldFormatter/LanguageCombinationDefaultFormatter.php b/src/Plugin/Field/FieldFormatter/LanguageCombinationDefaultFormatter.php
index 1d2681e..b7a24be 100644
--- a/src/Plugin/Field/FieldFormatter/LanguageCombinationDefaultFormatter.php
+++ b/src/Plugin/Field/FieldFormatter/LanguageCombinationDefaultFormatter.php
@@ -26,9 +26,9 @@ class LanguageCombinationDefaultFormatter extends FormatterBase {
 
     $installed_languages = \Drupal::languageManager()->getLanguages();
     foreach ($items as $delta => $item) {
-      $from = $installed_languages[$item->language_from]->getName();
-      $to = $installed_languages[$item->language_to]->getName();
-      $elements[$delta]['#markup'] = $this->t('From @from to @to', ['@from' => $from, '@to' => $to]);
+      $source = $installed_languages[$item->language_source]->getName();
+      $target = $installed_languages[$item->language_target]->getName();
+      $elements[$delta]['#markup'] = $this->t('@source to @target', ['@source' => $source, '@target' => $target]);
     }
 
     return $elements;
diff --git a/src/Plugin/Field/FieldFormatter/LanguageCombinationTableFormatter.php b/src/Plugin/Field/FieldFormatter/LanguageCombinationTableFormatter.php
index 8637c60..24856f0 100644
--- a/src/Plugin/Field/FieldFormatter/LanguageCombinationTableFormatter.php
+++ b/src/Plugin/Field/FieldFormatter/LanguageCombinationTableFormatter.php
@@ -28,21 +28,21 @@ class LanguageCombinationTableFormatter extends FormatterBase {
     $installed_languages = \Drupal::languageManager()->getLanguages();
 
     foreach ($items as $item) {
-      $from = $installed_languages[$item->language_from]->getName();
-      $to = $installed_languages[$item->language_to]->getName();
+      $source = $installed_languages[$item->language_source]->getName();
+      $target = $installed_languages[$item->language_target]->getName();
       $row[] = [
-        'data' => $from,
-        'class' => ['from-language', Html::getClass('language-' . $from)],
+        'data' => $source,
+        'class' => ['language-source', Html::getClass('language-' . $source)],
       ];
 
       $row[] = [
-        'data' => $to,
-        'class' => ['to-language', Html::getClass('language-' . $to)],
+        'data' => $target,
+        'class' => ['language-target', Html::getClass('language-' . $target)],
       ];
 
       $rows[] = [
         'data' => $row,
-        'class' => [Html::getClass($from . '-' . $to)],
+        'class' => [Html::getClass($source . '-' . $target)],
       ];
       $row = NULL;
     }
diff --git a/src/Plugin/Field/FieldType/LanguageCombination.php b/src/Plugin/Field/FieldType/LanguageCombination.php
index 69733f5..b98bcb3 100644
--- a/src/Plugin/Field/FieldType/LanguageCombination.php
+++ b/src/Plugin/Field/FieldType/LanguageCombination.php
@@ -16,7 +16,7 @@ use Drupal\language\Entity\ConfigurableLanguage;
  *   description = @Translation("Allows the definition of language combinations (e.g. 'From english to german')."),
  *   default_widget = "language_combination_default",
  *   default_formatter = "language_combination_default",
- *   constraints = {"LTLanguageCombination" = {}},
+ *   constraints = {"LanguageCombination" = {}},
  *   multiple = true,
  * )
  */
@@ -26,9 +26,9 @@ class LanguageCombination extends FieldItemBase {
    * {@inheritdoc}
    */
   public static function propertyDefinitions(FieldStorageDefinitionInterface $field) {
-    $property_definitions['source_languages'] = DataDefinition::create('string')
+    $property_definitions['language_source'] = DataDefinition::create('string')
       ->setLabel(t('From language'));
-    $property_definitions['target_languages'] = DataDefinition::create('string')
+    $property_definitions['language_target'] = DataDefinition::create('string')
       ->setLabel(t('To language'));
     return $property_definitions;
   }
@@ -39,19 +39,19 @@ class LanguageCombination extends FieldItemBase {
   public static function schema(FieldStorageDefinitionInterface $field) {
     return [
       'columns' => [
-        'source_languages' => [
-          'description' => 'The langcode of the language from which the user is able to translate.',
+        'language_source' => [
+          'description' => 'The langcode of the source language which the user is able to translate from.',
           'type'        => 'varchar',
           'length'      => 10,
         ],
-        'target_languages' => [
-          'description' => 'The langcode of the language to which the user is able to translate.',
+        'language_target' => [
+          'description' => 'The langcode of the target language which the user is able to translate into.',
           'type'        => 'varchar',
           'length'      => 10,
         ],
       ],
       'indexes' => [
-        'language' => ['source_languages', 'target_languages'],
+        'language' => ['language_source', 'language_target'],
       ],
     ];
   }
@@ -59,24 +59,14 @@ class LanguageCombination extends FieldItemBase {
   /**
    * {@inheritdoc}
    */
-  public function setValue($values, $notify = TRUE) {
-    if (isset($values['source_languages']) && !isset($values['language_from'])) {
-      $values['language_from'] = $values['source_languages'];
-    }
-    if (isset($values['target_languages']) && !isset($values['language_to'])) {
-      $values['language_to'] = $values['target_languages'];
-    }
-    parent::setValue($values, $notify);
-  }
-
-  /**
-   * {@inheritdoc}
-   */
   public function isEmpty() {
-    return empty($this->language_from)
-      || empty($this->language_to)
-      || $this->language_from == '_none'
-      || $this->language_to   == '_none';
+    if (empty($this->language_source)
+      || empty($this->language_target)
+      || $this->language_source == '_none'
+      || $this->language_target == '_none') {
+         return TRUE;
+    }
+    return FALSE;
   }
 
   /**
@@ -87,34 +77,15 @@ class LanguageCombination extends FieldItemBase {
 
     // In case the skill languages is not know to the system, install them.
     $languages = \Drupal::languageManager()->getLanguages();
-    if (!isset($languages[$this->language_from])) {
-      $language = ConfigurableLanguage::createFromLangcode($this->language_from);
+    if (!isset($languages[$this->language_source])) {
+      $language = ConfigurableLanguage::createFromLangcode($this->language_source);
       $language->save();
     }
-    if (!isset($languages[$this->language_to])) {
-      $language = ConfigurableLanguage::createFromLangcode($this->language_to);
+    if (!isset($languages[$this->language_target])) {
+      $language = ConfigurableLanguage::createFromLangcode($this->language_target);
       $language->save();
     }
   }
 
-  /**
-   * {@inheritdoc}
-   */
-  public function onChange($property_name, $notify = TRUE) {
-    // Make sure that the value and the language property stay in sync.
-    if ($property_name == 'source_languages') {
-      $this->writePropertyValue('language_from', $this->source_languages);
-    }
-    if ($property_name == 'target_languages') {
-      $this->writePropertyValue('language_to', $this->target_languages);
-    }
-    if ($property_name == 'language_from') {
-      $this->writePropertyValue('source_languages', $this->get('language_from')->getTargetIdentifier());
-    }
-    if ($property_name == 'language_to') {
-      $this->writePropertyValue('target_languages', $this->get('language_to')->getTargetIdentifier());
-    }
-    parent::onChange($property_name, $notify);
-  }
 
 }
diff --git a/src/Plugin/Field/FieldWidget/LanguageCombinationWidget.php b/src/Plugin/Field/FieldWidget/LanguageCombinationWidget.php
index 2ce4703..5af88ba 100644
--- a/src/Plugin/Field/FieldWidget/LanguageCombinationWidget.php
+++ b/src/Plugin/Field/FieldWidget/LanguageCombinationWidget.php
@@ -36,20 +36,20 @@ class LanguageCombinationWidget extends WidgetBase {
 
     $options = ['_none' => $this->t('- None -')] + $languages_options;
     $element['#type'] = 'fieldset';
-    $element['source_languages'] = [
+    $element['language_source'] = [
       '#type'          => 'select',
       '#title'         => $this->t('From'),
       '#options'       => $options,
-      '#default_value' => isset($items[$delta]) ? $items[$delta]->source_languages : '',
-      '#attributes'    => ['class' => ['from-language']],
+      '#default_value' => isset($items[$delta]) ? $items[$delta]->language_source : '',
+      '#attributes'    => ['class' => ['language-source']],
     ];
 
-    $element['target_languages'] = [
+    $element['language_target'] = [
       '#type'          => 'select',
       '#title'         => $this->t('To'),
       '#options'       => $options,
-      '#default_value' => isset($items[$delta]) ? $items[$delta]->target_languages : '',
-      '#attributes'    => ['class' => ['to-language']],
+      '#default_value' => isset($items[$delta]) ? $items[$delta]->language_target : '',
+      '#attributes'    => ['class' => ['language-target']],
     ];
 
     return $element;
diff --git a/src/Plugin/Validation/Constraint/LanguageCombinationConstraint.php b/src/Plugin/Validation/Constraint/LanguageCombinationConstraint.php
index ada4a1e..f83d206 100644
--- a/src/Plugin/Validation/Constraint/LanguageCombinationConstraint.php
+++ b/src/Plugin/Validation/Constraint/LanguageCombinationConstraint.php
@@ -8,7 +8,7 @@ use Symfony\Component\Validator\Constraint;
  * Checks that the node is assigned only a "leaf" term in the forum taxonomy.
  *
  * @Constraint(
- *   id = "LTLanguageCombination",
+ *   id = "LanguageCombination",
  *   label = @Translation("Language Combination", context = "Validation"),
  * )
  */
diff --git a/src/Plugin/Validation/Constraint/LanguageCombinationConstraintValidator.php b/src/Plugin/Validation/Constraint/LanguageCombinationConstraintValidator.php
index 2f9f299..56c8699 100644
--- a/src/Plugin/Validation/Constraint/LanguageCombinationConstraintValidator.php
+++ b/src/Plugin/Validation/Constraint/LanguageCombinationConstraintValidator.php
@@ -14,12 +14,12 @@ class LanguageCombinationConstraintValidator extends ConstraintValidator {
    * {@inheritdoc}
    */
   public function validate($value, Constraint $constraint) {
-    if ($value->language_from == $value->language_to) {
+    if ($value->language_source == $value->language_target) {
       $this->context->addViolation($constraint->noDifferentMessage);
     }
 
     foreach ($value->getParent() as $combination) {
-      if ($combination->language_from == $value->language_from && $combination->language_to == $value->language_to) {
+      if ($combination->language_source == $value->language_source && $combination->language_target == $value->language_target) {
         if ($value != $combination && $value->getName() > $combination->getName()) {
           $this->context->addViolation($constraint->uniqueMessage);
         }
diff --git a/tests/src/Functional/LanguageCombinationTest.php b/tests/src/Functional/LanguageCombinationTest.php
index 4bd962c..dbe8ea1 100644
--- a/tests/src/Functional/LanguageCombinationTest.php
+++ b/tests/src/Functional/LanguageCombinationTest.php
@@ -79,8 +79,8 @@ class LanguageCombinationTest extends BrowserTestBase {
     $this->drupalGet('node/add/article');
     $session = $this->assertSession();
     $session->pageTextContains('Language Combination');
-    $session->fieldExists("language_combination[0][source_languages]");
-    $session->fieldExists("language_combination[0][target_languages]");
+    $session->fieldExists("language_combination[0][language_source]");
+    $session->fieldExists("language_combination[0][language_target]");
   }
 
   /**
@@ -90,8 +90,8 @@ class LanguageCombinationTest extends BrowserTestBase {
     $this->drupalGet('node/add/article');
     $edit = [
       'title[0][value]'                           => $this->randomString(),
-      'language_combination[0][source_languages]' => 'fr',
-      'language_combination[0][target_languages]' => 'fr',
+      'language_combination[0][language_source]' => 'fr',
+      'language_combination[0][language_target]' => 'fr',
     ];
     $this->drupalPostForm('node/add/article', $edit, t('Save'));
     $this->assertSession()->pageTextContains("The 'from' and 'to' language fields can't have the same value.");
@@ -104,11 +104,11 @@ class LanguageCombinationTest extends BrowserTestBase {
     $this->drupalGet('node/add/article');
     $edit = [
       'title[0][value]'                           => $this->randomString(),
-      'language_combination[0][source_languages]' => 'fr',
-      'language_combination[0][target_languages]' => 'de',
+      'language_combination[0][language_source]' => 'fr',
+      'language_combination[0][language_target]' => 'de',
     ];
     $this->drupalPostForm('node/add/article', $edit, t('Save'));
-    $this->assertSession()->pageTextContains('From French to German');
+    $this->assertSession()->pageTextContains('French to German');
   }
 
 }
