diff --git a/config/unicaen-zimbra.global.php.dist b/config/unicaen-zimbra.global.php.dist
index 2bb9dac0d0ab84b71e76baad69a56f6b782aaf17..cb4ca4bc547f0a1193faa32c139d451d77b1435f 100644
--- a/config/unicaen-zimbra.global.php.dist
+++ b/config/unicaen-zimbra.global.php.dist
@@ -6,6 +6,7 @@ $settings = array(
     'email'     => 'adminsoap@unicaen.fr',
     'password'  => 'ZsIoMaBpRa',
     'domain'    => 'unicaen.fr',
+    'boite_generique_cos_id' => 'e00428a1-0c00-11d9-836a-000d93afea2a', // COS par défaut (à modifier)
 );
 
 return array(
diff --git a/config/unicaen-zimbra.local.php.dist b/config/unicaen-zimbra.local.php.dist
index c3a4322531f3c60fe88d8e7e20554c703ddfb41c..e06bc31c64cf7b5d454d54554ee843970e586de8 100644
--- a/config/unicaen-zimbra.local.php.dist
+++ b/config/unicaen-zimbra.local.php.dist
@@ -6,6 +6,7 @@ $settings = array(
     'email'     => 'david.surville@pp.unicaen.fr',
     'password'  => 'Zimbra14',
     'domain'    => 'pp.unicaen.fr',
+    'boite_generique_cos_id' => 'e00428a1-0c00-11d9-836a-000d93afea2a',
 );
 
 return array(
diff --git a/src/UnicaenZimbra/Options/ModuleOptions.php b/src/UnicaenZimbra/Options/ModuleOptions.php
index bb37f87eebad91fb70da4bed9d1d7c3ce07e9035..dfa02d55d3818b25bf1cf7d0e28ab957dcbdc8fc 100644
--- a/src/UnicaenZimbra/Options/ModuleOptions.php
+++ b/src/UnicaenZimbra/Options/ModuleOptions.php
@@ -34,7 +34,18 @@ class ModuleOptions extends \ZfcUser\Options\ModuleOptions
      * @var string
      */
     protected $domain;
+
+    /**
+     *
+     * @var string
+     */
+    protected $boiteGeneriqueCosId;
     
+    /**
+     *
+     * @var boolean
+     */
+    protected $debugMode = false;
     
     
     
@@ -124,7 +135,7 @@ class ModuleOptions extends \ZfcUser\Options\ModuleOptions
      * @param string $domain
      * @return ModuleOptions
      */
-    public function setdomain($domain)
+    public function setDomain($domain)
     {
         $this->domain = (string) $domain;
         return $this;
@@ -137,5 +148,45 @@ class ModuleOptions extends \ZfcUser\Options\ModuleOptions
     public function getDomain()
     {
         return $this->domain;
-    }    
+    }
+
+    /**
+     *
+     * @param string $boiteGeneriqueCosId
+     * @return ModuleOptions
+     */
+    public function setBoiteGeneriqueCosId($boiteGeneriqueCosId)
+    {
+        $this->boiteGeneriqueCosId = (string) $boiteGeneriqueCosId;
+        return $this;
+    }
+
+    /**
+     *
+     * @return string
+     */
+    public function getBoiteGeneriqueCosId()
+    {
+        return $this->boiteGeneriqueCosId;
+    }
+
+    /**
+     *
+     * @param boolean $debugMode
+     * @return ModuleOptions
+     */
+    public function setDebugMode($debugMode)
+    {
+        $this->debugMode = $debugMode == true;
+        return $this;
+    }
+
+    /**
+     *
+     * @return boolean
+     */
+    public function getDebugMode()
+    {
+        return $this->debugMode;
+    }
 }
\ No newline at end of file
diff --git a/src/UnicaenZimbra/Processus/BoiteGenerique.php b/src/UnicaenZimbra/Processus/BoiteGenerique.php
index d79f74086de579fb33e112b8fa79e312e18dcf1b..7e808e6ae14672d2c52a90289eefd4c68cc78ada 100644
--- a/src/UnicaenZimbra/Processus/BoiteGenerique.php
+++ b/src/UnicaenZimbra/Processus/BoiteGenerique.php
@@ -24,11 +24,11 @@ class BoiteGenerique extends Processus
     /**
      * Création d'une boite générique
      *
-     * @todo Ajouter la COS...
-     * @param string $name Nom de la boite
-     * @param string $password Mot de passe de la boite
      * @param string $mail Adresse mail de la boite générique
+     * @param string $password Mot de passe de la boite
+     * @param string $name Nom de la boite
      * @param string $description Description
+     * @return self
      */
     public function create( $mail, $password, $name, $description )
     {
@@ -38,27 +38,31 @@ class BoiteGenerique extends Processus
         $account = new Account;
         $account->name = $mail;        
         $account->description = $description;
-        $account->zimbraCOSId = $cosService->get('default')->getId();
+        $account->zimbraCOSId = $this->getZimbra()->getOptions()->getBoiteGeneriqueCosId();
         $accountService->create( $account, $password );
         $accountService->addAlias($account, $name.substr($mail, strpos($mail,'@')));
+        return $this;
     }
 
     /**
      * Destruction de la boite générique
      *
-     * @param string $mail
+     * @param string $mail Adresse mail de la boite générique
+     * @return self
      */
     public function delete( $mail )
     {
         $accountService = $this->getZimbra()->getAccountService();
         $accountService->delete($accountService->get($mail));
+        return $this;
     }
 
     /**
      * Crée une adresse fonctionnelle par rapport à la boite générique (paramètre $mail)
      *
-     * @param string $mail
-     * @param string $adresseFonctionnelle
+     * @param string $mail Adresse mail de la boite générique
+     * @param string $adresseFonctionnelle Adresse mail de l'adresse fonctionnelle
+     * @return self
      */
     public function createAdresseFonctionnelle( $mail, $adresseFonctionnelle )
     {
@@ -95,13 +99,15 @@ class BoiteGenerique extends Processus
         $filter->addAction($action);
         $filter->addAction( new FilterActionStop );
         $filterService->createInput($filter);
+        return $this;
     }
 
     /**
      * Supprime une adresse fonctionnelle par rapport à la boite générique (paramètre $mail)
      *
-     * @param string $mail
-     * @param string $adresseFonctionnelle
+     * @param string $mail Adresse mail de la boite générique
+     * @param string $adresseFonctionnelle Adresse mail de l'adresse fonctionnelle
+     * @return self
      */
     public function deleteAdresseFonctionnelle( $mail, $adresseFonctionnelle )
     {
@@ -125,8 +131,16 @@ class BoiteGenerique extends Processus
 
         /* Filtres */
         $filterService->deleteInput($afName.' | Réception');
+        return $this;
     }
 
+    /**
+     * Donne accès à une boite fonctionnelle pour un utilisateur
+     *
+     * @param string $adresseFonctionnelle Adresse mail de l'adresse fonctionnelle
+     * @param string $userMail Adresse mail de l'utilisateur
+     * @return self
+     */
     public function grantUserToAdresseFonctionnelle( $adresseFonctionnelle, $userMail )
     {
         $afName = $this->getMailName( $adresseFonctionnelle );
@@ -190,8 +204,16 @@ class BoiteGenerique extends Processus
         $identity->zimbraPrefWhenSentToAddresses = $adresseFonctionnelle;
         $identity->zimbraPrefWhenSentToEnabled = true;
         $identityService->create($identity);
+        return $this;
     }
 
+    /**
+     * Retire l'accès à une boite fonctionnelle pour un utilisateur
+     *
+     * @param string $adresseFonctionnelle Adresse mail de l'adresse fonctionnelle
+     * @param string $userMail Adresse mail de l'utilisateur
+     * @return self
+     */
     public function revokeUserFromAdresseFonctionnelle( $adresseFonctionnelle, $userMail )
     {
         $afName = $this->getMailName( $adresseFonctionnelle );
@@ -225,6 +247,7 @@ class BoiteGenerique extends Processus
 
         /* Avatar */
         $identityService->delete( $identityService->get($afName) );
+        return $this;
     }
 
     /**
diff --git a/src/UnicaenZimbra/Zimbra.php b/src/UnicaenZimbra/Zimbra.php
index e57b05a02cc84fb451ff660d8b2e1904214c935c..4f0ef4c7cff7d3fdc7d94e1be65a582e098639fe 100644
--- a/src/UnicaenZimbra/Zimbra.php
+++ b/src/UnicaenZimbra/Zimbra.php
@@ -27,7 +27,6 @@ use Exception;
 
 class Zimbra implements ServiceManagerAwareInterface 
 {
-    public $debug = false;
 
     /**
      * Zimbra ID pour le puvlic (utile pour gérer les droits de partage)
@@ -636,11 +635,11 @@ class Zimbra implements ServiceManagerAwareInterface
         unset($this->message->children('soap', true)->Body);
         $body = $this->message->addChild('Body');
         $this->arrayToNode($body, $name, $attributes, $params, $urn );
-        if ($this->debug) $this->printXml ($this->message->asXml());/** @todo DEBUG : à supprimer */
+        if ($this->getOptions()->getDebugMode()) $this->debugXml($this->message->asXml());
         curl_setopt($this->curlHandle, CURLOPT_POSTFIELDS, $this->message->asXml());
         $soapMessage = curl_exec($this->curlHandle);
 
-        if ($this->debug) $this->printXml ($soapMessage);/** @todo DEBUG : à supprimer */
+        if ($this->getOptions()->getDebugMode()) $this->debugXml($soapMessage);
         if (!$soapMessage) {
             throw new Exception(curl_error($this->curlHandle), curl_errno($this->curlHandle));
         }
@@ -728,13 +727,13 @@ class Zimbra implements ServiceManagerAwareInterface
         return array( '*a' => $result );
     }
 
-    public function printXml( $xml )
+    public function debugXml( $xml )
     {
         echo '<div style="border:1px red solid;margin:1px;padding:1px">';
-        try{
+        if ($this->getServiceManager()->has('Test\Xml')){
             $xmlHighlighter = $this->getServiceManager()->get('Test\Xml');
             $xmlHighlighter->highlight( $xml );
-        }catch(Exception $e){
+        }else{
             echo htmlentities( $xml );
         }
         echo '</div>';
diff --git a/tests/config/autoload/unicaen-zimbra.global.php b/tests/config/autoload/unicaen-zimbra.global.php
index 43d9c7ca71f014ff9fa0c7b7f6efdebc8ae7abf3..26fe5786a87bc68ffe8a4eb9fe0001042f781922 100644
--- a/tests/config/autoload/unicaen-zimbra.global.php
+++ b/tests/config/autoload/unicaen-zimbra.global.php
@@ -11,6 +11,7 @@ $settings = array(
     'email'     => 'adminsoap@unicaen.fr',
     'password'  => 'ZsIoMaBpRa',
     'domain'    => 'unicaen.fr',
+    'boite_generique_cos_id' => 'e00428a1-0c00-11d9-836a-000d93afea2a', // COS par défaut (à modifier)
 );
 
 /**
diff --git a/tests/config/autoload/unicaen-zimbra.local.php.dist b/tests/config/autoload/unicaen-zimbra.local.php.dist
index 16cbc69d2d511d7fc08b80f553f227458830f29f..74e05959064f56302b1b5b1128e150c224fc2428 100644
--- a/tests/config/autoload/unicaen-zimbra.local.php.dist
+++ b/tests/config/autoload/unicaen-zimbra.local.php.dist
@@ -11,6 +11,7 @@ $settings = array(
     'email'     => 'david.surville@pp.unicaen.fr',
     'password'  => 'Zimbra14',
     'domain'    => 'pp.unicaen.fr',
+    'boite_generique_cos_id' => 'e00428a1-0c00-11d9-836a-000d93afea2a',
 );
 
 /**