diff --git a/bin/account-manager-client.pl b/bin/account-manager-client.pl
index 52f39429274ac50450c834996cc1d76c7f1ce849..21074214c7abf9bdce94c40c8b84c5c547787f33 100755
--- a/bin/account-manager-client.pl
+++ b/bin/account-manager-client.pl
@@ -47,43 +47,32 @@ unless (
 
 if ($options{'add_test_account'}) {
 
-    my $logger = IdPAccountManager::Logger->new(
-        file      => $Conf::global{'log_file'},
-        verbosity => $Conf::global{'log_level'}
-    );
-
-    unless ($options{'account_profile'}) {
-        die "Missing account_profile option";
-    }
+    pod2usage(
+        -message => "missing account_profile option, aborting\n",
+        -verbose => 0
+    ) unless $options{'account_profile'};
 
-    unless ($options{'sp_entityid'}) {
-        die "Missing sp_entityid option";
-    }
+    pod2usage(
+        -message => "missing sp_entityid option, aborting\n",
+        -verbose => 0
+    ) unless $options{'sp_entityid'};
 
     my $test_account = IdPAccountManager::TestAccount->new(
         account_profile => $options{'account_profile'},
         sp_entityid     => $options{'sp_entityid'}
     );
-    unless (defined $test_account) {
-        $logger->log(level => LOG_ERROR, message => "Failed to create test account");
-        exit -1;
-    }
 
-    unless ($test_account->save()) {
-        $logger->log(level => LOG_ERROR, message => "Failed to create test account");
-        exit -1;
-    }
+    die "Failed to create test account\n"
+        unless $test_account;
+
+    die "Failed to save test account\n"
+        unless $test_account->save();
 
     printf "Account created:\n\tuserid: user%d\n\tpassword: %s\n",
       $test_account->get('id'), $test_account->get('user_password');
 
 } elsif ($options{'list_test_accounts'}) {
 
-    my $logger = IdPAccountManager::Logger->new(
-        file      => $Conf::global{'log_file'},
-        verbosity => $Conf::global{'log_level'}
-    );
-
     my %args;
     if ($options{'sp_entityid'}) {
         push @{ $args{'query'} }, 'sp_entityid' => $options{'sp_entityid'};
@@ -106,42 +95,36 @@ if ($options{'add_test_account'}) {
 
     foreach my $test_account (@$all) {
         $test_account->print();
-        $test_account->delete || die if ($options{'delete'});
+        next unless $options{'delete'};
+        die "failed to delete test account\n"
+            unless $test_account->delete();
     }
 
     if ($options{'delete'}) {
         printf "%d accounts removed\n", $#{$all} + 1;
 
-        ## Update simpleSamlPhp configuration file
+        die "failed to update simpleSAMLphp configuration file\n"
+            unless IdPAccountManager::Tools::update_ssp_authsources();
+
         printf "Update simpleSamlPhp configuration file...\n";
-        unless(IdPAccountManager::Tools::update_ssp_authsources()) {
-            $logger->log(
-                level   => LOG_ERROR,
-                message => "Failed to create simpleSAMLphp configuration file"
-            );
-        }
     }
 
 } elsif ($options{'parse_federation_metadata'}) {
     my $federation_metadata = IdPAccountManager::SAMLMetadata->new();
-    unless (
-        $federation_metadata->load(
+
+    die "unable to load federation metadata\n"
+        unless $federation_metadata->load(
             federation_metadata_file_path =>
               $Conf::global{'federation_metadata_file_path'}
-        )
-      )
-    {
-        die;
-    }
+        );
 
     my %args;
     if ($options{'sp_entityid'}) {
         $args{'filter_entity_id'} = $options{'sp_entityid'};
     }
 
-    unless ($federation_metadata->parse(%args)) {
-        die;
-    }
+    die "unable to parse federation metadata\n"
+        unless $federation_metadata->parse(%args);
 
     printf "Document %s parsed\n",
       $Conf::global{'federation_metadata_file_path'};
@@ -154,18 +137,15 @@ if ($options{'add_test_account'}) {
 
 } elsif ($options{'add_service_provider'}) {
 
-    my $logger = IdPAccountManager::Logger->new(
-        file      => $Conf::global{'log_file'},
-        verbosity => $Conf::global{'log_level'}
-    );
-
-    unless ($options{'sp_entityid'}) {
-        die "Missing sp_entityid option";
-    }
+    pod2usage(
+        -message => "missing sp_entityid option, aborting\n",
+        -verbose => 0
+    ) unless $options{'sp_entityid'};
 
-    unless ($options{'contacts'}) {
-        die "Missing contacts option";
-    }
+    pod2usage(
+        -message => "missing contacts option, aborting\n",
+        -verbose => 0
+    ) unless $options{'contacts'};
 
     ## Check if entry already exists in DB first
     my $service_provider =
@@ -185,18 +165,14 @@ if ($options{'add_test_account'}) {
             contacts    => $options{'contacts'},
             displayname => $options{'displayname'}
         );
-        unless (defined $service_provider) {
-            $logger->log(level => LOG_ERROR, message => "Failed to create service provider");
-            exit -1;
-        }
+        die "failed to create service provider\n"
+            unless $service_provider;
     }
 
-    unless ($service_provider->save()) {
-        $logger->log(level => LOG_ERROR, message => "Failed to create service provider");
-        exit -1;
-    }
+    die "failed to save service provider"
+        unless $service_provider->save();
 
-    printf "Service Provider created:\n";
+    printf "Service Provider created\n";
 
 } elsif ($options{'list_service_providers'}) {
 
@@ -235,7 +211,9 @@ if ($options{'add_test_account'}) {
 
     foreach my $authentication_token (@$all) {
         $authentication_token->print();
-        $authentication_token->delete || die if ($options{'delete'});
+        next unless options{'delete'};
+        die "failed to delete authentication token\n"
+            unless $authentication_token->delete();
     }
 
     if ($options{'delete'}) {
@@ -253,84 +231,75 @@ if ($options{'add_test_account'}) {
     my $authentication_token =
       IdPAccountManager::AuthenticationToken->new(%args);
 
-    unless ($authentication_token->load()) {
-        die "No corresponding token found in DB\n";
-    }
+    die "No corresponding token found in DB\n"
+        unless $authentication_token->load();
 
     if ($options{'sp_entityid'}) {
-        unless ($authentication_token->get('sp_entityid') eq
-            $options{'sp_entityid'})
-        {
-            die "Authentication token cannot be used for this SP\n";
-        }
+        die "Authentication token cannot be used for this SP\n"
+            unless $authentication_token->get('sp_entityid')
+                eq $options{'sp_entityid'};
     }
 
     $authentication_token->print();
 
 } elsif ($options{'add_authentication_token'}) {
 
-    my $logger = IdPAccountManager::Logger->new(
-        file      => $Conf::global{'log_file'},
-        verbosity => $Conf::global{'log_level'}
-    );
 
-    unless ($options{'email_address'}) {
-        die "Missing email_address option";
-    }
+    pod2usage(
+        -message => "missing email_address option, aborting\n",
+        -verbose => 0
+    ) unless $options{'email_address'};
 
-    unless ($options{'sp_entityid'}) {
-        die "Missing sp_entityid option";
-    }
+    pod2usage(
+        -message => "missing sp_entityid option, aborting\n",
+        -verbose => 0
+    ) unless $options{'sp_entityid'};
 
     my $authentication_token = IdPAccountManager::AuthenticationToken->new(
         'email_address' => $options{'email_address'},
         'sp_entityid'   => $options{'sp_entityid'}
     );
-    unless (defined $authentication_token) {
-        $logger->log(level => LOG_ERROR, message => "Failed to create token object");
-        exit -1;
-    }
+
+    die "failed to create authentication token\n"
+        unless $authentication_token;
 
     ## First remove token if on exist for this email+SP
     if ($authentication_token->load()) {
-        unless ($authentication_token->delete()) {
-            $logger->log(level => LOG_ERROR, message => "Failed to delete token");
-            exit -1;
-        }
+        die "failed to delete authentication token\n"
+            unless $authentication_token->delete();
 
         $authentication_token = IdPAccountManager::AuthenticationToken->new(
             'email_address' => $options{'email_address'},
             'sp_entityid'   => $options{'sp_entityid'}
         );
-        unless (defined $authentication_token) {
-            $logger->log(level => LOG_ERROR, message => "Failed to create token object");
-            exit -1;
-        }
+        die "failed to create authentication token\n"
+            unless $authentication_token;
     }
 
-    unless ($authentication_token->save()) {
-        $logger->log(level => LOG_ERROR, message => "Failed to create token");
-        exit -1;
-    }
+    die "failed to save authentication token\n"
+        unless $authentication_token->save();
 
     $authentication_token->print();
 
 } elsif ($options{'send_notice'}) {
-    unless ($options{'email_address'}) {
-        die "Missing email_address option";
-    }
 
-    unless (
-        IdPAccountManager::Tools::mail_notice(
+    pod2usage(
+        -message => "missing email_address option, aborting\n",
+        -verbose => 0
+    ) unless $options{'email_address'};
+
+    my $logger = IdPAccountManager::Logger->new(
+        file      => $Conf::global{'log_file'},
+        verbosity => $Conf::global{'log_level'}
+    );
+
+    die "Failed to send mail notice to $options{'email_address'}\n"
+        unless IdPAccountManager::Tools::mail_notice(
             'template' => 'templates/mail/notification_generic_error.tt2.eml',
             'data'     => {},
-            'to'       => $options{'email_address'}
+            'to'       => $options{'email_address'},
             'logger'   => $logger
-        )
-      )
-    {
-        die "Failed to send mail notice to $options{'email_address'}\n";
-    }
+        );
 
     printf "Mail notice sent to $options{'email_address'}\n";