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;
