diff --git a/lib/KorAP/XML/Annotation/CorpusExplorer/Morpho.pm b/lib/KorAP/XML/Annotation/CorpusExplorer/Morpho.pm
new file mode 100644
index 0000000..5d128bf
--- /dev/null
+++ b/lib/KorAP/XML/Annotation/CorpusExplorer/Morpho.pm
@@ -0,0 +1,60 @@
+package KorAP::XML::Annotation::CorpusExplorer::Morpho;
+use KorAP::XML::Annotation::Base;
+use Mojo::Util qw'trim';
+
+sub parse {
+  my $self = shift;
+
+  $$self->add_tokendata(
+    foundry => 'corpusexplorer',
+    layer => 'morpho',
+    cb => sub {
+      my ($stream, $token) = @_;
+      my $mtt = $stream->pos($token->get_pos);
+
+      my $content = $token->get_hash->{fs}->{f} or return;
+
+      $content = ref $content ne 'ARRAY' ? [$content] : $content;
+
+      my $start = $token->get_hash->{-from};
+
+      # Iterate over feature structures
+      foreach my $fs (@$content) {
+        $content = $fs->{fs}->{f} or next;
+
+        foreach (@$content) {
+
+          next unless $_->{'#text'};
+          my $value = trim $_->{'#text'} or next;
+
+          # POS
+          if ($_->{-name} eq 'ctag') {
+            $mtt->add_by_term('cex/p:' . $value);
+          }
+
+          # Lemma
+          elsif ($_->{-name} eq 'lemma') {
+            $mtt->add_by_term('cex/l:' . $value);
+          }
+
+          # Phrase
+          elsif ($_->{-name} eq 'phrase') {
+            $mtt->add_by_term('cex/phrase:' . $value);
+          };
+
+          if ($start == 809) {
+            warn $mtt->to_string;
+            warn $value;
+          };
+        };
+      };
+    }) or return;
+
+  return 1;
+};
+
+sub layer_info {
+  ['cex/p=tokens','cex/l=tokens','cex/phrase=tokens'];
+};
+
+1;
diff --git a/lib/KorAP/XML/Krill.pm b/lib/KorAP/XML/Krill.pm
index ead3638..e8f10c4 100644
--- a/lib/KorAP/XML/Krill.pm
+++ b/lib/KorAP/XML/Krill.pm
@@ -16,7 +16,7 @@
 
 our @EXPORT_OK = qw(get_file_name get_file_name_from_glob);
 
-our $VERSION = '0.55';
+our $VERSION = '0.56';
 
 has 'path';
 has [qw/text_sigle doc_sigle corpus_sigle/];
diff --git a/lib/KorAP/XML/Meta/I5.pm b/lib/KorAP/XML/Meta/I5.pm
index 4e28876..49841c7 100644
--- a/lib/KorAP/XML/Meta/I5.pm
+++ b/lib/KorAP/XML/Meta/I5.pm
@@ -291,6 +291,10 @@
           $key = 'A_';
           my $title = $_->att('desc');
           $value = $self->korap_data_uri($value, title => ($title // $value));
+        } elsif ($xtype eq 'number') {
+          $self->log->warn('Number currently not supported as xenodata type, treated as string');
+          $key = 'S_';
+          # Maybe render as Integer - but it's understood as a string
         } else {
           $self->log->warn('Unknown xenodata type: ' . $xtype);
           return;
