diff --git a/apps/maarch_entreprise/actions/sendFileWS.php b/apps/maarch_entreprise/actions/sendFileWS.php
index e10b955bd046f4bc089e98b41ecbe267d9a0da9f..6cb45dfc20d9defe06f29a8f7563ece917c012ab 100644
--- a/apps/maarch_entreprise/actions/sendFileWS.php
+++ b/apps/maarch_entreprise/actions/sendFileWS.php
@@ -10,7 +10,7 @@ function manage_send($aId)
 
     foreach ($aId as $resId) {
         $document = \Resource\models\ResModel::getById(['resId' => $resId, 'select' => ['res_id', 'format', 'path', 'filename']]);
-        $docserver = \Core\Models\DocserverModel::getByCollId(['collId' => 'letterbox_coll', 'priority' => true, 'select' => ['path_template']]);
+        $docserver = \SrcCore\models\DocserverModel::getByCollId(['collId' => 'letterbox_coll', 'priority' => true, 'select' => ['path_template']]);
 
         $file = file_get_contents($docserver['path_template'] . str_replace('#', '/', $document['path']) . $document['filename']);
         $encodedFile = base64_encode($file);
diff --git a/modules/attachments/Controllers/ReconciliationController.php b/modules/attachments/Controllers/ReconciliationController.php
index 547d597a243c6369f1fbb4e58f1a4d9497d25576..7eabd7c8255605dd441932af35a6bfe65e0fbcdf 100755
--- a/modules/attachments/Controllers/ReconciliationController.php
+++ b/modules/attachments/Controllers/ReconciliationController.php
@@ -6,9 +6,9 @@ use Psr\Http\Message\RequestInterface;
 use Psr\Http\Message\ResponseInterface;
 use Respect\Validation\Validator;
 use Attachments\Models\AttachmentsModel;
-use Core\Controllers\ResController;
-use Core\Models\DocserverModel;
-use Core\Models\DocserverTypeModel;
+use Resource\controllers\ResController;
+use SrcCore\models\DocserverModel;
+use SrcCore\models\DocserverTypeModel;
 use SrcCore\controllers\DocserverController;
 use SrcCore\controllers\DocserverToolsController;
 use Core\Models\ResModel;
diff --git a/modules/convert/Controllers/ProcessConvertController.php b/modules/convert/Controllers/ProcessConvertController.php
index e1de7813edcd8bfa6fa24c6cfc459b8e3133b328..9e680e687fb7f32af270822f0835d67b7633a1f0 100644
--- a/modules/convert/Controllers/ProcessConvertController.php
+++ b/modules/convert/Controllers/ProcessConvertController.php
@@ -29,8 +29,8 @@ use Psr\Http\Message\ResponseInterface;
 use Resource\models\ResModel;
 use Respect\Validation\Validator;
 use Convert\Models\ProcessConvertModel;
-use Core\Models\DocserverModel;
-use Core\Models\ResDocserverModel;
+use SrcCore\models\DocserverModel;
+use SrcCore\models\ResDocserverModel;
 use SrcCore\controllers\LogsController;
 use SrcCore\controllers\StoreController;
 
diff --git a/modules/convert/Controllers/ProcessFulltextController.php b/modules/convert/Controllers/ProcessFulltextController.php
index 38d5423f8537aa503097f905f21e87f9373e84de..07025212aaa0a2b14011d56f4af463b3501c2e4f 100644
--- a/modules/convert/Controllers/ProcessFulltextController.php
+++ b/modules/convert/Controllers/ProcessFulltextController.php
@@ -29,8 +29,8 @@ use Psr\Http\Message\ResponseInterface;
 use Resource\models\ResModel;
 use Respect\Validation\Validator;
 use Convert\Models\ProcessFulltextModel;
-use Core\Models\DocserverModel;
-use Core\Models\ResDocserverModel;
+use SrcCore\models\DocserverModel;
+use SrcCore\models\ResDocserverModel;
 use SrcCore\controllers\LogsController;
 use SrcCore\controllers\StoreController;
 
diff --git a/modules/convert/Controllers/ProcessThumbnailsController.php b/modules/convert/Controllers/ProcessThumbnailsController.php
index f45b37cec452372c9558f6be45035134b39a84da..173459f1173c9cb34ad0ff89dbc25d91a534c9df 100644
--- a/modules/convert/Controllers/ProcessThumbnailsController.php
+++ b/modules/convert/Controllers/ProcessThumbnailsController.php
@@ -29,8 +29,8 @@ use Psr\Http\Message\ResponseInterface;
 use Resource\models\ResModel;
 use Respect\Validation\Validator;
 use Convert\Models\ProcessThumbnailsModel;
-use Core\Models\DocserverModel;
-use Core\Models\ResDocserverModel;
+use SrcCore\models\DocserverModel;
+use SrcCore\models\ResDocserverModel;
 use SrcCore\controllers\LogsController;
 use SrcCore\controllers\StoreController;
 
diff --git a/modules/visa/Controllers/VisaController.php b/modules/visa/Controllers/VisaController.php
index 627ffb75f427d59ed92640151ecd51c64ca2a37c..8d94b535aaa69da50d3f78d72cf6ae912d0c6968 100755
--- a/modules/visa/Controllers/VisaController.php
+++ b/modules/visa/Controllers/VisaController.php
@@ -17,10 +17,10 @@ use Attachments\Models\AttachmentsModel;
 use Basket\models\BasketModel;
 use Action\models\ActionModel;
 use Core\Models\ContactModel;
-use Core\Models\LinkModel;
+use SrcCore\models\LinkModel;
 use Core\Models\UserModel;
 use Core\Models\LangModel;
-use Core\Models\DocserverModel;
+use SrcCore\models\DocserverModel;
 use Core\Models\ServiceModel;
 use Entity\models\ListInstanceModel;
 use Notes\Models\NoteModel;
diff --git a/modules/visa/sign_file.php b/modules/visa/sign_file.php
index 38b25e6b42f8cb0843e0f02aa93870ce4a6caeb8..ebbdd40e20bc22d73bc901b40c436db2eb8503df 100755
--- a/modules/visa/sign_file.php
+++ b/modules/visa/sign_file.php
@@ -37,7 +37,7 @@ if (!empty($_REQUEST['id']) && !empty($_REQUEST['collId'])) {
 			exit;
 		}
 
-		$docserver = \Core\Models\DocserverModel::getByTypeId(['docserver_type_id' => 'TEMPLATES', 'select' => ['path_template']]);
+		$docserver = \SrcCore\models\DocserverModel::getByTypeId(['docserver_type_id' => 'TEMPLATES', 'select' => ['path_template']]);
 		$pathToWantedSignature = $docserver['path_template'] . str_replace('#', '/', $signature->signature_path) . $signature->signature_file_name;
 	} else {
 		$pathToWantedSignature = $_SESSION['user']['pathToSignature'][0];
diff --git a/src/app/basket/models/BasketModel.php b/src/app/basket/models/BasketModel.php
index 02775ad8fe150a8d9031a347ad0ffd0428e13ca1..e35d8bb7512bf43cd663e9a416e2637c92be4811 100644
--- a/src/app/basket/models/BasketModel.php
+++ b/src/app/basket/models/BasketModel.php
@@ -21,6 +21,7 @@
 
 namespace Basket\models;
 
-class BasketModel extends BasketModelAbstract {
+class BasketModel extends BasketModelAbstract
+{
     // Do your stuff in this class
-}
\ No newline at end of file
+}
diff --git a/src/app/template/controllers/TemplateController.php b/src/app/template/controllers/TemplateController.php
index da2222fb57cf38cb7108e019b5cc4a8481b67fb9..9ee8c5ccebb319476c82228b62f3d4094ed09338 100644
--- a/src/app/template/controllers/TemplateController.php
+++ b/src/app/template/controllers/TemplateController.php
@@ -15,7 +15,7 @@
 namespace Template\controllers;
 
 use SrcCore\controllers\DocserverController;
-use Core\Models\DocserverModel;
+use SrcCore\models\DocserverModel;
 use Slim\Http\Request;
 use Slim\Http\Response;
 use Template\models\TemplateModel;
diff --git a/src/core/controllers/DocserverController.php b/src/core/controllers/DocserverController.php
index e196f43decf47818dc686a3ab069218790b4c9e6..a466e000cf98c8d5a656953d363355c8046dc0cc 100644
--- a/src/core/controllers/DocserverController.php
+++ b/src/core/controllers/DocserverController.php
@@ -19,7 +19,7 @@ use Core\Models\ServiceModel;
 use Core\Models\ValidatorModel;
 use Psr\Http\Message\RequestInterface;
 use Psr\Http\Message\ResponseInterface;
-use Core\Models\DocserverModel;
+use SrcCore\models\DocserverModel;
 
 class DocserverController
 {
diff --git a/src/core/controllers/DocserverToolsController.php b/src/core/controllers/DocserverToolsController.php
index e60c0e29014180850d316338bf8e00ad6057c8ca..c95cf0fd7d9dc94972458d8954addfd8d60ac48e 100644
--- a/src/core/controllers/DocserverToolsController.php
+++ b/src/core/controllers/DocserverToolsController.php
@@ -18,7 +18,7 @@ namespace SrcCore\controllers;
 use Psr\Http\Message\RequestInterface;
 use Psr\Http\Message\ResponseInterface;
 use Respect\Validation\Validator;
-use Core\Models\DocserverModel;
+use SrcCore\models\DocserverModel;
 
 class DocserverToolsController
 {
diff --git a/src/core/controllers/DocserverTypeController.php b/src/core/controllers/DocserverTypeController.php
index b2aeea521a2c4eb2ce53930f6131626ae014ea68..a4f87f329f700371b97bbf80d30ff2020f867fff 100644
--- a/src/core/controllers/DocserverTypeController.php
+++ b/src/core/controllers/DocserverTypeController.php
@@ -19,7 +19,7 @@ use Core\Models\ServiceModel;
 use Psr\Http\Message\RequestInterface;
 use Psr\Http\Message\ResponseInterface;
 use Respect\Validation\Validator;
-use Core\Models\DocserverTypeModel;
+use SrcCore\models\DocserverTypeModel;
 
 class DocserverTypeController
 {
diff --git a/src/core/controllers/LinkController.php b/src/core/controllers/LinkController.php
index 18666685529b2355222c98bf368c458349c690e8..d400b1b3955ef0ecc61c1ab9bcb0c61dc08734a3 100644
--- a/src/core/controllers/LinkController.php
+++ b/src/core/controllers/LinkController.php
@@ -15,7 +15,7 @@
 
 namespace SrcCore\controllers;
 
-use Core\Models\LinkModel;
+use SrcCore\models\LinkModel;
 use Psr\Http\Message\RequestInterface;
 use Psr\Http\Message\ResponseInterface;
 use Respect\Validation\Validator;
diff --git a/src/core/controllers/StoreController.php b/src/core/controllers/StoreController.php
index aec97b18c65e062bd5ca501be4797a4a42d5c599..383029d17073bbeca2f82930742103fc472db889 100644
--- a/src/core/controllers/StoreController.php
+++ b/src/core/controllers/StoreController.php
@@ -18,8 +18,8 @@ namespace SrcCore\controllers;
 use Attachments\Models\AttachmentsModel;
 use Core\Models\ChronoModel;
 use Core\Models\ContactModel;
-use Core\Models\DocserverModel;
-use Core\Models\DocserverTypeModel;
+use SrcCore\models\DocserverModel;
+use SrcCore\models\DocserverTypeModel;
 use Core\Models\ResExtModel;
 use Core\Models\UserModel;
 use Core\Models\ValidatorModel;
diff --git a/core/Models/DocserverModel.php b/src/core/models/DocserverModel.php
old mode 100755
new mode 100644
similarity index 80%
rename from core/Models/DocserverModel.php
rename to src/core/models/DocserverModel.php
index 666fec6c71319aff7e56837d16ac9cac4cf3a7f3..c6c1a192f19a55bebf51152917c465b32d781a3e
--- a/core/Models/DocserverModel.php
+++ b/src/core/models/DocserverModel.php
@@ -12,9 +12,7 @@
 * @author dev@maarch.org
 * @ingroup core
 */
-namespace Core\Models;
-
-require_once 'core/Models/DocserverModelAbstract.php';
+namespace SrcCore\models;
 
 class DocserverModel extends DocserverModelAbstract
 {
diff --git a/core/Models/DocserverModelAbstract.php b/src/core/models/DocserverModelAbstract.php
old mode 100755
new mode 100644
similarity index 99%
rename from core/Models/DocserverModelAbstract.php
rename to src/core/models/DocserverModelAbstract.php
index a76646081920133cc75152cd8b60962014c21814..595067ea59a2fa6bd5c410f466420905288ebd3f
--- a/core/Models/DocserverModelAbstract.php
+++ b/src/core/models/DocserverModelAbstract.php
@@ -13,7 +13,7 @@
 * @ingroup core
 */
 
-namespace Core\Models;
+namespace SrcCore\models;
 
 use SrcCore\models\DatabaseModel;
 
diff --git a/core/Models/DocserverTypeModel.php b/src/core/models/DocserverTypeModel.php
old mode 100755
new mode 100644
similarity index 80%
rename from core/Models/DocserverTypeModel.php
rename to src/core/models/DocserverTypeModel.php
index d759c5803f36b1e77748500ffe546e65a8dc31a4..99267d85a4e11993e3d5424566f163bbb949e0b0
--- a/core/Models/DocserverTypeModel.php
+++ b/src/core/models/DocserverTypeModel.php
@@ -12,9 +12,7 @@
 * @author dev@maarch.org
 * @ingroup core
 */
-namespace Core\Models;
-
-require_once 'core/Models/DocserverTypeModelAbstract.php';
+namespace SrcCore\models;
 
 class DocserverTypeModel extends DocserverTypeModelAbstract
 {
diff --git a/core/Models/DocserverTypeModelAbstract.php b/src/core/models/DocserverTypeModelAbstract.php
old mode 100755
new mode 100644
similarity index 98%
rename from core/Models/DocserverTypeModelAbstract.php
rename to src/core/models/DocserverTypeModelAbstract.php
index 56978f3e9c6d225a23f7ece25e7dd93d62e60d21..6915d03e5c911da00a4d64d66e700a56d5c35806
--- a/core/Models/DocserverTypeModelAbstract.php
+++ b/src/core/models/DocserverTypeModelAbstract.php
@@ -13,7 +13,7 @@
 * @ingroup core
 */
 
-namespace Core\Models;
+namespace SrcCore\models;
 
 use SrcCore\models\DatabaseModel;
 
diff --git a/core/Models/LinkModel.php b/src/core/models/LinkModel.php
similarity index 91%
rename from core/Models/LinkModel.php
rename to src/core/models/LinkModel.php
index 124be828167f4e4d28ba1ffb40a54eb1544c57bc..8af8b7d89affcf198a3c0d285a4d7320177a4543 100644
--- a/core/Models/LinkModel.php
+++ b/src/core/models/LinkModel.php
@@ -13,8 +13,9 @@
  * @ingroup core
  */
 
-namespace Core\Models;
+namespace SrcCore\models;
 
 class LinkModel extends LinkModelAbstract
 {
+
 }
diff --git a/core/Models/LinkModelAbstract.php b/src/core/models/LinkModelAbstract.php
similarity index 96%
rename from core/Models/LinkModelAbstract.php
rename to src/core/models/LinkModelAbstract.php
index c06c857aa148677948f1bad2a7ca8d6d84e5bdcc..12487491a2586bbae3ae76e42b7f19b6e2cd90d3 100644
--- a/core/Models/LinkModelAbstract.php
+++ b/src/core/models/LinkModelAbstract.php
@@ -13,8 +13,7 @@
  * @ingroup core
  */
 
-namespace Core\Models;
-
+namespace SrcCore\models;
 
 use SrcCore\models\DatabaseModel;
 
diff --git a/core/Models/ResDocserverModel.php b/src/core/models/ResDocserverModel.php
similarity index 93%
rename from core/Models/ResDocserverModel.php
rename to src/core/models/ResDocserverModel.php
index 7b7bfcb9104e0917a0c8868688efbb3cc085cbba..9dd6a128b363438691e7a6eeeace5996a51ffbce 100644
--- a/core/Models/ResDocserverModel.php
+++ b/src/core/models/ResDocserverModel.php
@@ -13,7 +13,7 @@
 * @ingroup core
 */
 
-namespace Core\Models;
+namespace SrcCore\models;
 
 class ResDocserverModel extends ResDocserverModelAbstract
 {
diff --git a/core/Models/ResDocserverModelAbstract.php b/src/core/models/ResDocserverModelAbstract.php
similarity index 99%
rename from core/Models/ResDocserverModelAbstract.php
rename to src/core/models/ResDocserverModelAbstract.php
index 9023c6e28adf445981093b9eb56eac9cb4c825d0..8b385aa772d11686d84574744d9eedc2a6f237cb 100644
--- a/core/Models/ResDocserverModelAbstract.php
+++ b/src/core/models/ResDocserverModelAbstract.php
@@ -13,7 +13,7 @@
 * @ingroup core
 */
 
-namespace Core\Models;
+namespace SrcCore\models;
 
 use SrcCore\models\DatabaseModel;
 
diff --git a/src/core/models/ValidatorModel.php b/src/core/models/ValidatorModel.php
new file mode 100644
index 0000000000000000000000000000000000000000..7ba5ba2010297d38e5c677e6a43193a5efda8ccf
--- /dev/null
+++ b/src/core/models/ValidatorModel.php
@@ -0,0 +1,94 @@
+<?php
+
+/**
+* Copyright Maarch since 2008 under licence GPLv3.
+* See LICENCE.txt file at the root folder for more details.
+* This file is part of Maarch software.
+*
+*/
+
+/**
+* @brief Validator Model
+* @author dev@maarch.org
+* @ingroup core
+*/
+
+namespace SrcCore\models;
+
+use Respect\Validation\Validator;
+
+class ValidatorModel
+{
+    public static function notEmpty(array $aArgs, $aKeys)
+    {
+        if (!Validator::arrayType()->notEmpty()->validate($aArgs)) {
+            throw new \Exception('First argument must be a non empty array');
+        }
+        foreach ($aKeys as $key) {
+            if (!Validator::notEmpty()->validate($aArgs[$key])) {
+                throw new \Exception("Argument {$key} is empty");
+            }
+        }
+    }
+
+    public static function intVal(array $aArgs, $aKeys)
+    {
+        foreach ($aKeys as $key) {
+            if (empty($aArgs[$key])) {
+                continue;
+            }
+            if (!Validator::intVal()->validate($aArgs[$key])) {
+                throw new \Exception("Argument {$key} is not an integer (value)");
+            }
+        }
+    }
+
+    public static function intType(array $aArgs, $aKeys)
+    {
+        foreach ($aKeys as $key) {
+            if (empty($aArgs[$key])) {
+                continue;
+            }
+            if (!Validator::intType()->validate($aArgs[$key])) {
+                throw new \Exception("Argument {$key} is not an integer (type)");
+            }
+        }
+    }
+
+    public static function stringType(array $aArgs, $aKeys)
+    {
+        foreach ($aKeys as $key) {
+            if (empty($aArgs[$key])) {
+                continue;
+            }
+            if (!Validator::stringType()->validate($aArgs[$key])) {
+                throw new \Exception("Argument {$key} is not a string (type)");
+            }
+        }
+    }
+
+    public static function arrayType(array $aArgs, $aKeys)
+    {
+        foreach ($aKeys as $key) {
+            if (empty($aArgs[$key])) {
+                continue;
+            }
+            if (!Validator::arrayType()->validate($aArgs[$key])) {
+                throw new \Exception("Argument {$key} is not an array (type)");
+            }
+        }
+    }
+
+    public static function boolType(array $aArgs, $aKeys)
+    {
+        foreach ($aKeys as $key) {
+            if (empty($aArgs[$key])) {
+                continue;
+            }
+            if (!Validator::boolType()->validate($aArgs[$key])) {
+                throw new \Exception("Argument {$key} is not a boolean (type)");
+            }
+        }
+    }
+
+}