diff --git a/MANIFEST b/MANIFEST
index 64a5c6f..e3d83d4 100644
--- a/MANIFEST
+++ b/MANIFEST
@@ -191,4 +191,3 @@
 t/tokens.t
 t/tools/example_rules.json
 t/transform.t
-xt/benchmark.pl
diff --git a/MANIFEST.SKIP b/MANIFEST.SKIP
index f8efe15..c2a6eb1 100755
--- a/MANIFEST.SKIP
+++ b/MANIFEST.SKIP
@@ -1,5 +1,6 @@
 # Skip real corpus regression files and tests
 ^t/real/
+^xt/
 
 # Makemaker generated files and dirs.
 ^MANIFEST\.
diff --git a/xt/benchmark.pl b/xt/benchmark.pl
index bc470d5..69fc908 100644
--- a/xt/benchmark.pl
+++ b/xt/benchmark.pl
@@ -38,6 +38,16 @@
 my $cache = tmpnam();
 # end instance 1
 
+
+# begin instance 2 setup
+# Load example file
+use KorAP::XML::Krill;
+use KorAP::XML::Tokenizer;
+my $path = catdir(dirname(__FILE__), '..','t','real', 'corpus','GOE-TAGGED','AGA','03828');
+my ($tokens, $result);
+# end instance 2
+
+
 # Create a new benchmark object
 my $bench = Dumbbench->new(
   verbosity => 0
@@ -61,6 +71,46 @@
       );
       `$cmd`;
     }
+  ),
+  Dumbbench::Instance::PerlSub->new(
+    name => 'Conversion-GOE-Tagged-1',
+    code => sub {
+      my $doc = KorAP::XML::Krill->new(path => $path . '/');
+      $doc->parse;
+      my $meta = $doc->meta;
+      $tokens = KorAP::XML::Tokenizer->new(
+        path => $doc->path,
+        doc => $doc,
+        foundry => 'Base',
+        layer => 'Tokens_conservative',
+        name => 'tokens'
+      );
+      $tokens->parse;
+      $tokens->add('DeReKo', 'Structure', 'base_sentences_paragraphs');
+      $tokens->add('DRuKoLa', 'Morpho');
+      $result = $tokens->to_data;
+      $tokens = undef;
+    }
+  ),
+  Dumbbench::Instance::PerlSub->new(
+    name => 'Conversion-GOE-Tagged-1',
+    code => sub {
+      my $doc = KorAP::XML::Krill->new(path => $path . '/');
+      $doc->parse;
+      my $meta = $doc->meta;
+      $tokens = KorAP::XML::Tokenizer->new(
+        path => $doc->path,
+        doc => $doc,
+        foundry => 'Base',
+        layer => 'Tokens_conservative',
+        name => 'tokens'
+      );
+      $tokens->parse;
+      $tokens->add('DeReKo', 'Structure', 'base_sentences_paragraphs');
+      $tokens->add('DRuKoLa', 'Morpho');
+      $result = $tokens->to_data;
+      $tokens = undef;
+    }
   )
 );
 
@@ -76,6 +126,8 @@
   exit(0);
 };
 
+print "----------------------------------\n";
+
 # Output simple timings for comparation
 foreach my $inst ($bench->instances) {
   unless ($no_header) {
diff --git a/xt/prof-conv-goe-tagged-1.pl b/xt/prof-conv-goe-tagged-1.pl
new file mode 100644
index 0000000..9ba0356
--- /dev/null
+++ b/xt/prof-conv-goe-tagged-1.pl
@@ -0,0 +1,28 @@
+#!/usr/bin/env perl
+use strict;
+use warnings;
+use File::Basename 'dirname';
+use File::Spec::Functions qw/catfile catdir rel2abs/;
+
+# Run
+# $ perl -d:NYTProf xt/prof-conv-goe-tagged-1.pl
+# $ nytprofhtml --open
+
+use KorAP::XML::Krill;
+use KorAP::XML::Tokenizer;
+my $path = catdir(dirname(__FILE__), '..','t','real', 'corpus','GOE-TAGGED','AGA','03828');
+
+my $doc = KorAP::XML::Krill->new(path => $path . '/');
+$doc->parse;
+my $meta = $doc->meta;
+my $tokens = KorAP::XML::Tokenizer->new(
+  path => $doc->path,
+  doc => $doc,
+  foundry => 'Base',
+  layer => 'Tokens_conservative',
+  name => 'tokens'
+);
+$tokens->parse;
+$tokens->add('DeReKo', 'Structure', 'base_sentences_paragraphs');
+$tokens->add('DRuKoLa', 'Morpho');
+$tokens->to_data;
