LinkUpIntervalInMin = link_up_interval_in_min;
 }
 
-vector< HostItem > Configuration::get_hosts() const
+HostList Configuration::get_hosts() const
 {
     return Hosts;
 }
 
-void Configuration::set_hosts( const vector< HostItem > &hosts_list )
+void Configuration::set_hosts( const HostList &hosts_list )
 {
     this->Hosts = hosts_list;
 }
 
 #include <string>
 #include <vector>
 
+#include <boost/shared_ptr.hpp>
+
 #include "config/host.h"
 
 //-----------------------------------------------------------------------------
     int get_link_up_interval_in_min() const;
     void set_link_up_interval_in_min( const int link_up_interval_in_min );
 
-    std::vector<HostItem> get_hosts() const;
-    void set_hosts( const std::vector<HostItem> &hosts_list );
+    HostList get_hosts() const;
+    void set_hosts( const HostList &hosts_list );
 
 private:
     bool Daemon;
     std::string SourceNetworkInterface;
     std::string NameServer;
     int HostsDownLimit;
-    const int MinHostsDownLimit;
-    const int MaxHostsDownLimit;
+    int MinHostsDownLimit;
+    int MaxHostsDownLimit;
     int PingFailLimit;
-    const int MinPingFailLimit;
-    const int MaxPingFailLimit;
+    int MinPingFailLimit;
+    int MaxPingFailLimit;
     std::string StatusNotifierCmd;
     int LinkUpIntervalInMin;
-    const int MinStableLinkIntervalInMin;
-    const int MaxStableLinkIntervalInMin;
-    std::vector<HostItem> Hosts;
+    int MinStableLinkIntervalInMin;
+    int MaxStableLinkIntervalInMin;
+    HostList Hosts;
 
 };
 
+//-----------------------------------------------------------------------------
+// ConfigurationItem
+//-----------------------------------------------------------------------------
+
+typedef boost::shared_ptr<Configuration> ConfigurationItem;
+
 #endif /* CONFIGURATION_H */
 
     size_t hosts_names_count = 0;
     if ( vm.count( HostNameCmdStr ) > 0 )
     {
-        vector<HostItem> hosts_list;
+        HostList hosts_list;
 
         vector<string> hosts_names = vm[ HostNameCmdStr ].as< vector<string> > ();
         BOOST_FOREACH( string host_name, hosts_names )
     size_t hosts_interval_count = 0;
     if ( vm.count( HostIntervalCmdStr ) > 0 )
     {
-        vector<HostItem> hosts_list = Config.get_hosts();
-        vector<HostItem>::iterator hosts_it = hosts_list.begin();
+        HostList hosts_list = Config.get_hosts();
+        HostList::iterator hosts_it = hosts_list.begin();
 
         vector<int> hosts_intervals = vm[ HostIntervalCmdStr ].as< vector<int> > ();
         BOOST_FOREACH( int host_interval_in_sec, hosts_intervals )
 
 
 typedef boost::shared_ptr<Host> HostItem;
 
+//-----------------------------------------------------------------------------
+// HostList
+//-----------------------------------------------------------------------------
+
+typedef std::vector< HostItem > HostList;
+
 #endif /* HOST_H */