diff --git a/Changes b/Changes
index 47836c2..7bdf664 100644
--- a/Changes
+++ b/Changes
@@ -1,5 +1,6 @@
         - Remove unnecessary branch in recursive call
         - Support inline-structures parameter
+        - Introduce --base-foundry, --data-file, and --header-file parameters
 
 1.00 2021-02-18 Release
         - -s option added that uses sentence boundaries provided by the KorAP tokenizer (-tk)
diff --git a/Readme.pod b/Readme.pod
index 443a944..0ed0fb1 100644
--- a/Readme.pod
+++ b/Readme.pod
@@ -125,6 +125,24 @@
 Define the foundry and file (without extension)
 to store inline structure information in.
 Defaults to C<struct> and C<structures>.
+=item B<--base-foundry> <foundry>
+
+Define the base foundry to store newly generated
+token information in.
+Defaults to C<base>.
+
+=item B<--data-file> <file>
+
+Define the file (without extension)
+to store primary data information in.
+Defaults to C<data>.
+
+=item B<--header-file> <file>
+
+Define the file name (without extension)
+to store header information on
+the corpus, document, and text level in.
+Defaults to C<header>.
 
 =item B<--use-tokenizer-sentence-splits|-s>
 
diff --git a/script/tei2korapxml b/script/tei2korapxml
index 9a0cbf9..2e3aa0e 100755
--- a/script/tei2korapxml
+++ b/script/tei2korapxml
@@ -50,6 +50,9 @@
   'use-tokenizer-sentence-splits|s' => (\my $use_tokenizer_sentence_splits), # use KorAP tokenizer to split s (default=no)
   'inline-tokens=s' => \(my $inline_tokens = 'tokens#morpho'),
   'inline-structures=s' => \(my $inline_structures = 'struct#structure'),
+  'base-foundry=s' => \(my $_tok_dir = 'base'),
+  'data-file=s' => \(my $_data_file = 'data'),
+  'header-file=s' => \(my $_header_file = 'header'),
   'log|l=s' => \(my $log_level = 'notice'),
   'help|h'    => sub {
     pod2usage(
@@ -117,12 +120,6 @@
 my $cons_tok       = KorAP::XML::TEI::Tokenizer::Conservative->new;
 ##
 
-
-my $_tok_dir         = "base";                       # name of directory for storing tokenization files
-
-my $_header_file     = "header.xml";                 # name of files      containing the  text, document and corpus header
-my $_data_file       = "data.xml";                   # name of file       containing the  primary text data (tokens)
-
 ## TODO: optional (different annotation tools can produce more zip-files for feeding into KorAP-XML-Krill)
 my $_TOKENS_PROC     = 1;                            # on/off: processing of ${_TOKEN_TAG}'s (default: 1)
 
@@ -301,12 +298,12 @@
           retr_info(1, \$tree_data->[2] ); # parse input data
 
           if (DEBUG) {
-            $log->debug("Writing (utf8-formatted) xml file $dir/$_data_file");
+            $log->debug("Writing (utf8-formatted) xml file $dir/${_data_file}.xml");
           };
 
           # ~ write data.xml ~
           $data->to_zip(
-            $zipper->new_stream("$dir/${_data_file}"),
+            $zipper->new_stream("$dir/${_data_file}.xml"),
             $text_id_esc
           );
 
@@ -418,7 +415,7 @@
     if ($header) {
 
       # Write header to zip
-      my $file = $header->dir . '/' . $_header_file;
+      my $file = $header->dir . '/' . $_header_file . '.xml';
 
       $log->debug("Writing file $file") if DEBUG;
 
@@ -725,6 +722,25 @@
 to store inline structure information in.
 Defaults to C<struct> and C<structures>.
 
+=item B<--base-foundry> <foundry>
+
+Define the base foundry to store newly generated
+token information in.
+Defaults to C<base>.
+
+=item B<--data-file> <file>
+
+Define the file (without extension)
+to store primary data information in.
+Defaults to C<data>.
+
+=item B<--header-file> <file>
+
+Define the file name (without extension)
+to store header information on
+the corpus, document, and text level in.
+Defaults to C<header>.
+
 =item B<--use-tokenizer-sentence-splits|-s>
 
 Replace existing with, or add new, sentence boundary information
diff --git a/t/script.t b/t/script.t
index f9c336b..658cc79 100644
--- a/t/script.t
+++ b/t/script.t
@@ -453,6 +453,34 @@
     ;
 };
 
+
+subtest 'Check file structure with defined folder and filenames' => sub {
+  # Load example file
+  my $file = catfile($f, 'data', 'goe_sample.i5.xml');
+  my $t = test_tei2korapxml(
+    tmp => 'script_out',
+    file => $file,
+    param => '-ti --base-foundry=root --data-file=primary --header-file=meta'
+  )->stderr_like(qr!tei2korapxml: .*? text_id=GOE_AGA\.00000!)
+    ->file_exists_not('GOE/AGA/00000/header.xml', 'Header not there')
+    ->file_exists_not('GOE/AGA/header.xml', 'Header not there')
+    ->file_exists_not('GOE/header.xml', 'Header not there')
+    ->file_exists_not('GOE/AGA/00000/data.xml', 'Data not there')
+    ->file_exists_not('GOE/AGA/00000/base/tokens_conservative.xml', 'Tokens not there')
+    ->file_exists_not('GOE/AGA/00000/base/tokens_aggressive.xml', 'Tokens not there')
+    ->file_exists('GOE/AGA/00000/meta.xml', 'Header there')
+    ->file_exists('GOE/AGA/meta.xml', 'Header there')
+    ->file_exists('GOE/meta.xml', 'Header there')
+    ->file_exists('GOE/AGA/00000/primary.xml', 'Data there')
+    ->file_exists('GOE/AGA/00000/root/tokens_conservative.xml', 'Tokens there')
+    ->file_exists('GOE/AGA/00000/root/tokens_aggressive.xml', 'Tokens there')
+    ;
+
+  $t->unzip_xml('GOE/AGA/00000/primary.xml')
+    ->content_like(qr/\Q&quot;Kriegstheater&quot;\E/)
+    ;
+};
+
 subtest 'Check Inline annotations with defined foundry and folder' => sub {
   # Load example file
   my $file = catfile($f, 'data', 'goe_sample_tagged.i5.xml');
