diff --git a/lib/KorAP/XML/Annotation/Connexor/Morpho.pm b/lib/KorAP/XML/Annotation/Connexor/Morpho.pm
index 6500ab6..6007356 100644
--- a/lib/KorAP/XML/Annotation/Connexor/Morpho.pm
+++ b/lib/KorAP/XML/Annotation/Connexor/Morpho.pm
@@ -41,32 +41,24 @@
         if (($f->{-name} eq 'lemma') && ($found = $f->{'#text'})) {
           if (index($found, "\N{U+00a0}") >= 0) {
             foreach (split(/\x{00A0}/, $found)) {
-              $mtt->add(
-                term => 'cnx/l:' . $_
-              );
+              $mtt->add_by_term('cnx/l:' . $_);
             }
           }
           else {
-            $mtt->add(
-              term => 'cnx/l:' . $found
-            );
+            $mtt->add_by_term('cnx/l:' . $found);
           };
         }
 
         # POS
         elsif (($f->{-name} eq 'pos') && ($found = $f->{'#text'})) {
-          $mtt->add(
-            term => 'cnx/p:' . $found
-          );
+          $mtt->add_by_term('cnx/p:' . $found);
         }
         # MSD
         # This could follow
         # http://www.ids-mannheim.de/cosmas2/projekt/referenz/connexor/morph.html
         elsif (($f->{-name} eq 'msd') && ($found = $f->{'#text'})) {
           foreach (split(':', $found)) {
-            $mtt->add(
-              term => 'cnx/m:' . $_
-            );
+            $mtt->add_by_term('cnx/m:' . $_);
           };
         };
       };
diff --git a/lib/KorAP/XML/Annotation/Connexor/Phrase.pm b/lib/KorAP/XML/Annotation/Connexor/Phrase.pm
index 754cf4f..e5f8012 100644
--- a/lib/KorAP/XML/Annotation/Connexor/Phrase.pm
+++ b/lib/KorAP/XML/Annotation/Connexor/Phrase.pm
@@ -17,15 +17,13 @@
       my $type = $content->{'#text'};
 
       if ($type) {
-        my $mtt = $stream->pos($span->get_p_start);
-        $mtt->add(
-          term => '<>:cnx/c:' . $type,
-          o_start => $span->get_o_start,
-          o_end => $span->get_o_end,
-          p_end => $span->get_p_end,
-          pti => 64,
-          payload => '<b>0' # Pseudo-depth
-        );
+        my $mt = $stream->pos($span->get_p_start)
+          ->add_by_term('<>:cnx/c:' . $type);
+        $mt->set_o_start($span->get_o_start);
+        $mt->set_o_end($span->get_o_end);
+        $mt->set_p_end($span->get_p_end);
+        $mt->set_pti(64);
+        $mt->set_payload('<b>0'); # Pseudo-depth
       };
     }
   ) or return;
diff --git a/lib/KorAP/XML/Annotation/Connexor/Sentences.pm b/lib/KorAP/XML/Annotation/Connexor/Sentences.pm
index b36956f..71b1e08 100644
--- a/lib/KorAP/XML/Annotation/Connexor/Sentences.pm
+++ b/lib/KorAP/XML/Annotation/Connexor/Sentences.pm
@@ -10,15 +10,13 @@
     layer => 'sentences',
     cb => sub {
       my ($stream, $span) = @_;
-      my $mtt = $stream->pos($span->get_p_start);
-      $mtt->add(
-        term => '<>:cnx/s:s',
-        o_start => $span->get_o_start,
-        o_end => $span->get_o_end,
-        p_end => $span->get_p_end,
-        pti => 64,
-        payload => '<b>0'
-      );
+      my $mt = $stream->pos($span->get_p_start)
+        ->add_by_term('<>:cnx/s:s');
+      $mt->set_o_start($span->get_o_start);
+      $mt->set_o_end($span->get_o_end);
+      $mt->set_p_end($span->get_p_end);
+      $mt->set_pti(64);
+      $mt->set_payload('<b>0');
       $i++;
     }
   ) or return;
diff --git a/lib/KorAP/XML/Annotation/Connexor/Syntax.pm b/lib/KorAP/XML/Annotation/Connexor/Syntax.pm
index 171e0ec..df2c39d 100644
--- a/lib/KorAP/XML/Annotation/Connexor/Syntax.pm
+++ b/lib/KorAP/XML/Annotation/Connexor/Syntax.pm
@@ -16,9 +16,7 @@
       # syntax
       foreach (@$spans) {
         if (($_->{-name} eq 'pos') && ($found = $_->{'#text'})) {
-          $mtt->add(
-            term => 'cnx/syn:' . $found
-          );
+          $mtt->add_by_term('cnx/syn:' . $found);
         };
       };
     }) or return;
