diff --git a/deploy_checkit_tiff/add_dnx_mappings/README.txt b/deploy_checkit_tiff/add_dnx_mappings/README.txt
index d5841958d31083f5d542f84fc7ce8f671f23226a..66b6d9e26a9f85a8544969390c8930c86281dd2c 100644
--- a/deploy_checkit_tiff/add_dnx_mappings/README.txt
+++ b/deploy_checkit_tiff/add_dnx_mappings/README.txt
@@ -26,8 +26,8 @@ How to automatically add Mappings between extracted Technical Metadata and DNX S
 == How to run
 
 * general invocation
-** $# perl -I path/to/perl/modules .add_dnx_mappings.pl "Rosetta-Host.Domain.tld" "Rosetta-User" "Rosetta-Password" "Institution-Name" "Portnumber"
- 
+** $# perl -I path/to/perl/modules ./add_dnx_mappings.pl --rosetta_host="Rosetta-Host.Domain.tld" --protocol="https" --ui_port="Port-Number" --user="Rosetta-User" --password="Rosetta-Password" --institution="Institution-Name" --plugin_name="Plugin-Name" --classification_group="Classification-Group"
+
 * example invocation:
-** $# perl -I ~/perl5/lib/perl5 ./add_dnx_mappings.pl "sdvrosetta-test.slub-dresden.de" "su-user" "Sw0rdF!$h" "SLUB" "8443"
+** $# perl -I path/to/perl/modules ./add_dnx_mappings.pl --rosetta_host="sdvrosetta-test.slub-dresden.de" --protocol="https" --ui_port="8443" --user="su-user" --password="Sw0rdF!$h" --institution="SLUB" --plugin_name="SLUBTechnicalMetadataExtractorCheckItTiffPlugin" --classification_group="Image (Mix)"
 
diff --git a/deploy_checkit_tiff/add_dnx_mappings/add_dnx_mappings.pl b/deploy_checkit_tiff/add_dnx_mappings/add_dnx_mappings.pl
index 75036de098f1c5cc3a348dbcb2ac280d255b8f75..09537b1cc6b40a7f9fa19db92e429dd192cd3391 100644
--- a/deploy_checkit_tiff/add_dnx_mappings/add_dnx_mappings.pl
+++ b/deploy_checkit_tiff/add_dnx_mappings/add_dnx_mappings.pl
@@ -19,14 +19,38 @@ no warnings qw(experimental::signatures);
 use Selenium::Remote::Driver;
 use Selenium::Chrome;
 use Term::ANSIColor; # colored print
+use Getopt::Long;
 
 
-my $host = shift;
-my $user = shift;
-my $passwd = shift;
-my $institution = shift;
-my $ui_port = shift;
+my $host;
 my $protocol = 'https';
+my $ui_port = "8443";
+my $user;
+my $passwd;
+my $institution;
+my $plugin_name = 'SLUBTechnicalMetadataExtractorCheckItTiffPlugin';
+my $classification_group = 'Image (Mix)';
+my $driver;
+
+GetOptions(
+    "rosetta_host=s{1}"         => \$host,
+    "protocol:s{1}"             => \$protocol,
+    "ui_port:s{1}"              => \$ui_port,
+    "user=s{1}"                 => \$user,
+    "password=s{1}"             => \$passwd,
+    "institution=s{1}"          => \$institution,
+    "plugin_name:s{1}"          => \$plugin_name,
+    "classification_group:s{1}" => \$classification_group
+) or die("Error in command line arguments\n");
+die("invalid/missing argument: --rosetta_host")         unless $host;
+die("invalid/missing argument: --protocol")             unless $protocol;
+die("invalid/missing argument: --ui_port")              unless $ui_port;
+die("invalid/missing argument: --user")                 unless $user;
+die("invalid/missing argument: --password")             unless $passwd;
+die("invalid/missing argument: --institution")          unless $institution;
+die("invalid/missing argument: --plugin_name")          unless $plugin_name;
+die("invalid/missing argument: --classification_group") unless $classification_group;
+
 my %exiftool2dnx = (
     "ICC-header:ColorSpaceData"       => "icc.colorspacedata",
     "ICC-header:DeviceModel"          => "icc.devicemodel",
@@ -62,18 +86,6 @@ my %exiftool2dnx = (
     "IFD0:XResolution"                => "image.xresolution",              # TIFF-Tag 282 XResolution
     "IFD0:YResolution"                => "image.yresolution",              # TIFF-Tag 283 YResolution
 );
-my $plugin_name = "SLUBTechnicalMetadataExtractorCheckItTiffPlugin";
-my $classification_group = "Image (Mix)";
-my $driver = Selenium::Chrome->new();
-$driver->debug_on;
-$driver->set_implicit_wait_timeout(1000);
-$driver->set_timeout('script', 1000);
-
-print "Try to mechanize adding DNX, using: 
-  host=$host
-  user=$user
-  institution=$institution
-  \n";
 
 sub login {
     $driver->get("$protocol://$host:${ui_port}/mng?auth=local");
@@ -185,7 +197,22 @@ sub extractors_add_mapping ($dnx_property, $exiftool_property) {
     $driver->pause();
 }
 
-# login
+# startup info
+printf colored("Trying to mechanize adding DNX mappings using:
+  rosetta host         = '$host'
+  ui port              = '$ui_port'
+  user                 = '$user'
+  institution          = '$institution'
+  plugin name          = '$plugin_name'
+  classification group = '$classification_group'\n\n", 'bold white');
+
+# startup driver
+$driver = Selenium::Chrome->new();
+$driver->debug_on;
+$driver->set_implicit_wait_timeout(1000);
+$driver->set_timeout('script', 1000);
+
+# Rosetta login
 printf colored("Step 1 of 7: login \n", 'bold green');
 login();
 
@@ -222,7 +249,9 @@ change_to_local_format_library();
 printf colored("Step 7 of 7: logout \n", 'bold green');
 logout();
 
+# stop driver
 $driver->quit();
 $driver->shutdown_binary();
 
+# stop info
 printf colored("Finished! \n", 'bold green');