diff --git a/src/warden-client/lib/WardenClientConf.pm b/src/warden-client/lib/WardenClientConf.pm
index 2acd29f7f9038987b8b6218c1182b2f3038b2679..26340f9f23c1cfa97f57ed052715a41d641c2b8d 100755
--- a/src/warden-client/lib/WardenClientConf.pm
+++ b/src/warden-client/lib/WardenClientConf.pm
@@ -9,6 +9,19 @@
 package WardenClientConf;
 
 use strict;
+use Carp;
+
+# preset of default variables
+our $URI = undef;
+our $SSL_KEY_FILE = undef;
+our $SSL_CERT_FILE = undef;
+our $SSL_CA_FILE = undef;
+our $MAX_RCV_EVENTS_LIMIT = undef;
+our $LOG_STDERR = 0;
+our $LOG_SYSLOG = 0;
+our $LOG_SYSLOG_FACILITY = "local7";
+our $LOG_VERBOSE = 0;
+
 
 our $VERSION = "2.0";
 
@@ -19,17 +32,6 @@ sub loadConf
 {
   my $conf_file = shift;
 
-  # preset of default variables
-  our $URI = undef;
-  our $SSL_KEY_FILE = undef;
-  our $SSL_CERT_FILE = undef;
-  our $SSL_CA_FILE = undef;
-  our $MAX_RCV_EVENTS_LIMIT = undef;
-  our $LOG_STDERR = 0;
-  our $LOG_SYSLOG = 0;
-  our $LOG_SYSLOG_FACILITY = "local7";
-  our $LOG_VERBOSE = 0;
-
   # load set variables by user
   unless (do $conf_file) {
     die("Errors in config file '$conf_file': $@") if $@;
@@ -37,7 +39,78 @@ sub loadConf
     # if $_ defined, it's retvalue of last statement of conf, for which we don't care
   }
 
-  return ($URI, $SSL_KEY_FILE, $SSL_CERT_FILE, $SSL_CA_FILE, $MAX_RCV_EVENTS_LIMIT, $LOG_STDERR, $LOG_SYSLOG, $LOG_SYSLOG_FACILITY, $LOG_VERBOSE);
+  return ($URI, $SSL_KEY_FILE, $SSL_CERT_FILE, $SSL_CA_FILE, $MAX_RCV_EVENTS_LIMIT, $LOG_STDERR, $LOG_SYSLOG, $LOG_SYSLOG_FACILITY);
 
 } # End of loadConf
+
+#-------------------------------------------------------------------------------
+# errMsg - print error message and die
+#-------------------------------------------------------------------------------
+sub errMsg
+{
+  my $msg = "Error message: " . shift;
+
+  if ($LOG_VERBOSE) { # user wants to log debug information
+    $msg .= "\nStack info: " . Carp::longmess();
+  }
+
+  die($msg . "\n");
+} # End of errMsg
+
+
+#-------------------------------------------------------------------------------
+# c2s - connect to server, send request and receive response
+#-------------------------------------------------------------------------------
+sub c2s
+{
+  my $uri               = shift;
+  my $ssl_key_file      = shift;
+  my $ssl_cert_file     = shift;
+  my $ssl_ca_file       = shift;
+  my $method            = shift;
+  my $data              = shift;
+
+  my $client;
+  my ($server, $port, $service) = $uri =~ /https:\/\/(.+)\:(\d+)\/(.+)/;
+  if (!($client = SOAP::Transport::HTTP::Client->new())) {
+    errMsg("Sorry, unable to create socket: " . &SOAP::Transport::HTTP::Client::errstr)
+  }
+  $client->timeout(10);
+  $client->ssl_opts(verify_hostname     => 1,
+                    SSL_use_cert        => 1,
+                    SSL_verify_mode     => 0x02,
+                    SSL_key_file        => $ssl_key_file,
+                    SSL_cert_file       => $ssl_cert_file,
+                    SSL_ca_file         => $ssl_ca_file);
+
+  # setting of URI and serialize SOAP envelope and data object
+  my $soap     = SOAP::Lite->uri($service)->proxy($uri);
+  my $envelope;
+  if (!defined $data) {
+    $envelope = $soap->serializer->envelope(method => $method);
+  } else {
+    $envelope = $soap->serializer->envelope(method => $method, $data);
+  }
+
+  # setting of TCP URI and send serialized SOAP envelope and data
+  my $server_uri = "https://$server:$port/$service";
+  my $result = $client->send_receive(envelope => $envelope, endpoint => $server_uri);
+
+  # check server response
+  if (!defined $result) {
+    errMsg("Error: server returned empty response." . "\n" . "Problem with used SSL ceritificates or Warden server at $server:$port is down.");
+  } else {
+    # deserialized response from server -> create SOAP envelope and data object
+    my $response;
+
+    eval {
+      $response = $soap->deserializer->deserialize($result);
+    } or errMsg($@ . "Received data: " . $result);
+    # check SOAP fault status
+    $response->fault ? errMsg("Server sent error message:: " . $response->faultstring) : return $response;
+  }
+}
+
+
+
 1;
diff --git a/src/warden-client/lib/WardenClientReceive.pm b/src/warden-client/lib/WardenClientReceive.pm
index 93ee9052c2c17db8cd08d79c22ba2a083c6811eb..7cb6b476269a90df5bdadc8e288b0faccbf71ba0 100755
--- a/src/warden-client/lib/WardenClientReceive.pm
+++ b/src/warden-client/lib/WardenClientReceive.pm
@@ -13,7 +13,7 @@ use SOAP::Lite;
 use IO::Socket::SSL qw(debug1);
 use SOAP::Transport::HTTP;
 use FindBin;
-use Carp;
+# use Carp;
 use Sys::Syslog;
 
 our $VERSION = "2.0";
@@ -27,75 +27,6 @@ our $LOG_SYSLOG_FACILITY;
 our $LOG_VERBOSE = 0;
 #----- end of configuration variables ------------------------------------------
 
-#-------------------------------------------------------------------------------
-# errMsg - print error message and die
-#-------------------------------------------------------------------------------
-sub errMsg
-{
-  my $msg = "Error message: " . shift;
-
-  if ($LOG_VERBOSE) { # user wants to log debug information
-    $msg .= "\nStack info: " . Carp::longmess();
-  }
-
-  die($msg . "\n");
-} # End of errMsg
-
-
-#-------------------------------------------------------------------------------
-# c2s - connect to server, send request and receive response
-#-------------------------------------------------------------------------------
-sub c2s 
-{
-  my $uri		= shift;
-  my $ssl_key_file	= shift;
-  my $ssl_cert_file	= shift;
-  my $ssl_ca_file	= shift;
-  my $method		= shift;
-  my $data		= shift;
-
-  my $client;
-  my ($server, $port, $service) = $uri =~ /https:\/\/(.+)\:(\d+)\/(.+)/;
-  if (!($client = SOAP::Transport::HTTP::Client->new())) {
-    errMsg("Sorry, unable to create socket: " . &SOAP::Transport::HTTP::Client::errstr)
-  }
-  $client->timeout(10);
-  $client->ssl_opts(verify_hostname     => 1,
-		    SSL_use_cert        => 1,
-		    SSL_verify_mode     => 0x02,
-		    SSL_key_file        => $ssl_key_file,
-		    SSL_cert_file       => $ssl_cert_file,
-		    SSL_ca_file         => $ssl_ca_file);
-
-  # setting of URI and serialize SOAP envelope and data object
-  my $soap     = SOAP::Lite->uri($service)->proxy($uri);
-  my $envelope;
-  if (!defined $data) {
-    $envelope = $soap->serializer->envelope(method => $method);
-  } else {
-    $envelope = $soap->serializer->envelope(method => $method, $data);
-  }
-
-  # setting of TCP URI and send serialized SOAP envelope and data
-  my $server_uri = "https://$server:$port/$service";
-  my $result = $client->send_receive(envelope => $envelope, endpoint => $server_uri);
-
-  # check server response
-  if (!defined $result) {
-    errMsg("Error: server returned empty response." . "\n" . "Problem with used SSL ceritificates or Warden server at $server:$port is down.");
-  } else {
-    # deserialized response from server -> create SOAP envelope and data object
-    my $response;
-    
-    eval {
-      $response = $soap->deserializer->deserialize($result);
-    } or errMsg($@ . "Received data: " . $result);
-    # check SOAP fault status
-    $response->fault ? errMsg("Server sent error message:: " . $response->faultstring) : return $response;
-  }
-}
-
-
 #-------------------------------------------------------------------------------
 # getNewEvents - get new events from warden server greater than last received ID
 #-------------------------------------------------------------------------------
@@ -116,7 +47,7 @@ sub getNewEvents
     require $libdir .  "WardenClientConf.pm";
     my $conf_file = $etcdir . "warden-client.conf";
     my ($uri, $ssl_key_file, $ssl_cert_file, $ssl_ca_file, $max_rcv_events_limit);
-    ($uri, $ssl_key_file, $ssl_cert_file, $ssl_ca_file, $max_rcv_events_limit, $LOG_STDERR, $LOG_SYSLOG, $LOG_SYSLOG_FACILITY, $LOG_VERBOSE) = WardenClientConf::loadConf($conf_file);
+    ($uri, $ssl_key_file, $ssl_cert_file, $ssl_ca_file, $max_rcv_events_limit, $LOG_STDERR, $LOG_SYSLOG, $LOG_SYSLOG_FACILITY) = WardenClientConf::loadConf($conf_file);
 
     # set name of ID file for each client aplication 
     my $caller_name = $FindBin::Script;
@@ -127,15 +58,15 @@ sub getNewEvents
     # get last ID from warden server DB and save it into ID file
     my $last_id;
     if (-e $id_file) {
-      open(ID, "< $id_file") || errMsg("Cannot open ID file $id_file: $!");
+      open(ID, "< $id_file") || WardenClientConf::errMsg("Cannot open ID file $id_file: $!");
       foreach(<ID>) {
         $last_id = $_;
       }
       close ID;
     } else {
-      my $response = c2s($uri, $ssl_key_file, $ssl_cert_file, $ssl_ca_file, "getLastId");
+      my $response = WardenClientConf::c2s($uri, $ssl_key_file, $ssl_cert_file, $ssl_ca_file, "getLastId");
       $last_id = $response->result;
-      open(ID, "> $id_file") || errMsg("Cannot open ID file $id_file: $!");
+      open(ID, "> $id_file") || WardenClientConf::errMsg("Cannot open ID file $id_file: $!");
       print ID $last_id;
       close ID;
     }
@@ -153,7 +84,7 @@ sub getNewEvents
     );
   
     # call server method getNewEvents 
-    my $response = c2s($uri, $ssl_key_file, $ssl_cert_file, $ssl_ca_file, "getNewEvents", $request_data);
+    my $response = WardenClientConf::c2s($uri, $ssl_key_file, $ssl_cert_file, $ssl_ca_file, "getNewEvents", $request_data);
 
     # parse returned SOAP data object
     my ($id, $hostname, $service, $detected, $type, $source_type, $source, $target_proto, $target_port, $attack_scale, $note, $priority, $timeout);
@@ -189,7 +120,7 @@ sub getNewEvents
 
     # write last return ID
     if (defined $last_id) { # must be defined for first check ID
-      open(ID, "> $id_file") || errMsg("Cannot open ID file $id_file: $!");
+      open(ID, "> $id_file") || WardenClientConf::errMsg("Cannot open ID file $id_file: $!");
       print ID $last_id;
       close ID;
     }
diff --git a/src/warden-client/lib/WardenClientSend.pm b/src/warden-client/lib/WardenClientSend.pm
index 32a9d45a93b98bf38697746e604e4ed806e342ec..c903807b926448fc87f53b30d3c662b5b006a776 100755
--- a/src/warden-client/lib/WardenClientSend.pm
+++ b/src/warden-client/lib/WardenClientSend.pm
@@ -12,7 +12,6 @@ use strict;
 use SOAP::Lite;
 use IO::Socket::SSL qw(debug1);
 use SOAP::Transport::HTTP;
-use Carp;
 use Sys::Syslog;
 
 our $VERSION = "2.0"; #first iteration after 'port to Apache'
@@ -26,69 +25,6 @@ our $LOG_SYSLOG_FACILITY;
 our $LOG_VERBOSE = 0;
 #----- end of configuration variables ------------------------------------------
 
-#-------------------------------------------------------------------------------
-# errMsg - print error message and die
-#-------------------------------------------------------------------------------
-sub errMsg
-{
-  my $msg = "Error message: " . shift;
-
-  if ($LOG_VERBOSE) { # user wants to log debug information
-    $msg .= "\nStack info: " . Carp::longmess();
-  }
-
-  die($msg . "\n");
-} # End of errMsg
-
-
-#-------------------------------------------------------------------------------
-# c2s - connect to server, send request and receive response
-#-------------------------------------------------------------------------------
-sub c2s 
-{
-  my $uri		        = shift;
-  my $ssl_key_file	= shift;
-  my $ssl_cert_file	= shift;
-  my $ssl_ca_file	  = shift;
-  my $method		    = shift;
-  my $data		      = shift;
-
-  my ($server, $port, $service) = $uri =~ /https:\/\/(.+)\:(\d+)\/(.+)/;
-
-  my $client;
-  if (!($client = SOAP::Transport::HTTP::Client->new())) {
-    errMsg("Sorry, unable to create socket: " . &SOAP::Transport::HTTP::Client::errstr)
-  }
-  $client->timeout(60);
-  $client->ssl_opts(verify_hostname     => 1,
-		    SSL_use_cert        => 1,
-		    SSL_verify_mode     => 0x02,
-		    SSL_key_file        => $ssl_key_file,
-		    SSL_cert_file       => $ssl_cert_file,
-		    SSL_ca_file         => $ssl_ca_file);
-
-
-  # setting of URI and serialize SOAP envelope and data object
-  my $soap     = SOAP::Lite->uri($service)->proxy($uri);
-  my $envelope = $soap->serializer->envelope(method => $method, $data);
-
-  # setting of TCP URI and send serialized SOAP envelope and data
-  my $server_uri = "https://$server:$port/$service";
-
-  my $result = $client->send_receive(envelope => $envelope, endpoint => $server_uri);
-
-  # check server response
-  if (!defined $result) {
-    errMsg("Error: server returned empty response." . "\n" . "Problem with used SSL ceritificates or Warden server at $server:$port is down.");
-  } else {
-    # deserialized response from server -> create SOAP envelope and data object
-    my $response = $soap->deserializer->deserialize($result);
-    # check SOAP fault status
-    $response->fault ? errMsg("Server sent error message:: " . $response->faultstring) : return 1;
-  }
-}
-
-
 #-------------------------------------------------------------------------------
 # saveNewEvent - send new event from detection scripts to warden server
 #-------------------------------------------------------------------------------
@@ -107,7 +43,7 @@ sub saveNewEvent
     require $libdir .  "WardenClientConf.pm";
     my $conf_file = $etcdir . "warden-client.conf";
     my ($uri, $ssl_key_file, $ssl_cert_file, $ssl_ca_file, $max_rcv_events_limit);
-    ($uri, $ssl_key_file, $ssl_cert_file, $ssl_ca_file, $max_rcv_events_limit, $LOG_STDERR, $LOG_SYSLOG, $LOG_SYSLOG_FACILITY, $LOG_VERBOSE) = WardenClientConf::loadConf($conf_file);
+    ($uri, $ssl_key_file, $ssl_cert_file, $ssl_ca_file, $max_rcv_events_limit, $LOG_STDERR, $LOG_SYSLOG, $LOG_SYSLOG_FACILITY) = WardenClientConf::loadConf($conf_file);
 
     # prepare variables of event 
     my @event         = @{$event_ref};
@@ -140,7 +76,7 @@ sub saveNewEvent
       )
     );
 
-    $result = c2s($uri, $ssl_key_file, $ssl_cert_file, $ssl_ca_file, "saveNewEvent", $event);
+    $result = WardenClientConf::c2s($uri, $ssl_key_file, $ssl_cert_file, $ssl_ca_file, "saveNewEvent", $event);
   } # End of eval block
   or do {