diff --git a/t/meta.t b/t/meta.t
index 3aa0f34..a51371a 100644
--- a/t/meta.t
+++ b/t/meta.t
@@ -1,6 +1,3 @@
-#!/usr/bin/env perl
-# source ~/perl5/perlbrew/etc/bashrc
-# perlbrew switch perl-blead@korap
 use strict;
 use warnings;
 use utf8;
@@ -11,12 +8,10 @@
 use File::Basename 'dirname';
 use File::Spec::Functions 'catdir';
 
-# TODO: Make 'text' -> 'primaryText'
-
 use_ok('KorAP::Document');
 
 # WPD/00001
-my $path = catdir(dirname(__FILE__), 'WPD/00001');
+my $path = catdir(dirname(__FILE__), 'corpus/WPD/00001');
 ok(my $doc = KorAP::Document->new( path => $path . '/' ), 'Load Korap::Document');
 like($doc->path, qr!$path/!, 'Path');
 
@@ -63,7 +58,7 @@
 #ok(!$doc->coll_author, 'Collection author');
 
 # BRZ13/00001
-$path = catdir(dirname(__FILE__), 'BRZ13/00001');
+$path = catdir(dirname(__FILE__), 'corpus/BRZ13/00001');
 ok($doc = KorAP::Document->new( path => $path . '/' ), 'Load Korap::Document');
 
 ok($doc->parse, 'Parse document');
@@ -92,7 +87,7 @@
 ok(!$doc->text_type_art, 'text_type art');
 
 # A01/13047
-$path = catdir(dirname(__FILE__), 'A01/13047');
+$path = catdir(dirname(__FILE__), 'corpus/A01/13047');
 ok($doc = KorAP::Document->new( path => $path . '/' ), 'Load Korap::Document');
 
 ok($doc->parse, 'Parse document');
@@ -119,11 +114,11 @@
 is($doc->text_type_art, 'Bericht', 'text_type art');
 
 # ERL/0001
-$path = catdir(dirname(__FILE__), 'ERL/00001');
+$path = catdir(dirname(__FILE__), 'corpus/ERL/00001');
 ok($doc = KorAP::Document->new( path => $path . '/' ), 'Load Korap::Document');
 
 ok($doc->parse, 'Parse document');
-is($doc->title, 'Amtsblatt des Landesbezirks Baden [diverse Erlasse], Hrsg. und Schriftleitung: Präsidialstelle der Landesverwaltung Baden in Karlsruhe. - Karlsruhe, o.J.', 'title'); # Amtsblatt des Landesbezirks Baden [diverse Erlasse]
+is($doc->title, 'Amtsblatt des Landesbezirks Baden [diverse Erlasse]', 'title'); # Amtsblatt des Landesbezirks Baden [diverse Erlasse]
 # MK2/ERL.00001
 
 ok(!$doc->sub_title, 'subTitle');
@@ -153,7 +148,7 @@
 ok(!$doc->text_type_art, 'text_type art');
 
 # A01/02035-substring
-$path = catdir(dirname(__FILE__), 'A00/02035-substring');
+$path = catdir(dirname(__FILE__), 'corpus/A00/02035-substring');
 ok($doc = KorAP::Document->new( path => $path . '/' ), 'Load Korap::Document');
 
 ok($doc->parse, 'Parse document');
@@ -180,7 +175,7 @@
 is($doc->text_type_art, 'Bericht', 'text_type art');
 
 # A01/02873-meta
-$path = catdir(dirname(__FILE__), 'A00/02873-meta');
+$path = catdir(dirname(__FILE__), 'corpus/A00/02873-meta');
 ok($doc = KorAP::Document->new( path => $path . '/' ), 'Load Korap::Document');
 
 ok($doc->parse, 'Parse document');
@@ -209,7 +204,7 @@
 
 
 # A01/05663-unbalanced
-$path = catdir(dirname(__FILE__), 'A00/05663-unbalanced');
+$path = catdir(dirname(__FILE__), 'corpus/A00/05663-unbalanced');
 ok($doc = KorAP::Document->new( path => $path . '/' ), 'Load Korap::Document');
 
 ok($doc->parse, 'Parse document');
@@ -238,7 +233,7 @@
 
 
 # A01/07452-deep
-$path = catdir(dirname(__FILE__), 'A00/07452-deep');
+$path = catdir(dirname(__FILE__), 'corpus/A00/07452-deep');
 ok($doc = KorAP::Document->new( path => $path . '/' ), 'Load Korap::Document');
 
 ok($doc->parse, 'Parse document');
@@ -266,7 +261,7 @@
 is($doc->text_type_art, 'Bericht', 'text_type art');
 
 # ART
-$path = catdir(dirname(__FILE__), 'artificial');
+$path = catdir(dirname(__FILE__), 'corpus/artificial');
 ok($doc = KorAP::Document->new( path => $path . '/' ), 'Load Korap::Document');
 #is($doc->path, $path . '/', 'Path');
 
@@ -303,7 +298,7 @@
 is($doc->text_type_art, 'Bericht', 'text_type art');
 
 # Multipath headers
-$path = catdir(dirname(__FILE__), 'VDI/JAN/00001');
+$path = catdir(dirname(__FILE__), 'corpus/VDI/JAN/00001');
 ok($doc = KorAP::Document->new( path => $path . '/' ), 'Load Korap::Document');
 like($doc->path, qr!$path/!, 'Path');
 
@@ -347,16 +342,16 @@
 ok(!$doc->doc_editor, 'Doc editor');
 ok(!$doc->doc_author, 'Doc author');
 
-is($doc->corpus_title, 'VDI nachrichten 2014', 'Corpus title');
+is($doc->corpus_title, 'VDI nachrichten', 'Corpus title');
 ok(!$doc->corpus_sub_title, 'Corpus Sub title');
-ok(!$doc->corpus_editor, 'Corpus editor');
+is($doc->corpus_editor, 'Verein Deutscher Ingenieure', 'Corpus editor');
 ok(!$doc->corpus_author, 'Corpus author');
 
 is($doc->keywords_string, '', 'Keywords');
 is($doc->text_class_string, 'Freizeit-Unterhaltung Reisen Politik Ausland', 'Text class');
 
 # WDD
-$path = catdir(dirname(__FILE__), 'WDD/G27/38989');
+$path = catdir(dirname(__FILE__), 'corpus/WDD/G27/38989');
 ok($doc = KorAP::Document->new( path => $path . '/' ), 'Load Korap::Document');
 like($doc->path, qr!$path/!, 'Path');
 ok($doc->parse, 'Parse document');
@@ -394,9 +389,9 @@
 ok(!$doc->doc_editor, 'Doc editor');
 ok(!$doc->doc_author, 'Doc author');
 
-is($doc->corpus_title, 'Wikipedia.de 2011 Diskussionen', 'Corpus title');
+is($doc->corpus_title, 'Wikipedia', 'Corpus title');
 ok(!$doc->corpus_sub_title, 'Corpus Sub title');
-ok(!$doc->corpus_editor, 'Corpus editor');
+is($doc->corpus_editor, 'wikipedia.org', 'Corpus editor');
 ok(!$doc->corpus_author, 'Corpus author');
 
 is($doc->keywords_string, '', 'Keywords');
