diff --git a/apps/maarch_entreprise/Models/ActionModelAbstract.php b/apps/maarch_entreprise/Models/ActionModelAbstract.php
index 9dce15e8928d7c9ca847766051299f65f526a952..36c56a98dc0250f015afef020623d272ce437ceb 100755
--- a/apps/maarch_entreprise/Models/ActionModelAbstract.php
+++ b/apps/maarch_entreprise/Models/ActionModelAbstract.php
@@ -20,24 +20,6 @@ use Core\Models\ValidatorModel;
 
 class ActionModelAbstract
 {
-    public static function getActionPageById(array $aArgs = []) {
-        ValidatorModel::notEmpty($aArgs, ['id']);
-        ValidatorModel::intVal($aArgs, ['id']);
-
-        $action = DatabaseModel::select([
-            'select'    => ['action_page'],
-            'table'     => ['actions'],
-            'where'     => ['id = ? AND enabled = ?'],
-            'data'      => [$aArgs['id'], 'Y']
-        ]);
-
-        if (empty($action[0])) {
-            return '';
-        }
-
-        return $action[0]['action_page'];
-    }
-
     public static function getDefaultActionByGroupBasketId(array $aArgs) {
         ValidatorModel::notEmpty($aArgs, ['groupId', 'basketId']);
         ValidatorModel::stringType($aArgs, ['groupId', 'basketId']);
diff --git a/apps/maarch_entreprise/class/class_lists_Abstract.php b/apps/maarch_entreprise/class/class_lists_Abstract.php
index 3d1db4c02b8d9cd334e9f9d65d80a1a37a074b8b..432c257fbba24770e3995082d7c94cb03ff195d3 100755
--- a/apps/maarch_entreprise/class/class_lists_Abstract.php
+++ b/apps/maarch_entreprise/class/class_lists_Abstract.php
@@ -1423,7 +1423,7 @@ abstract class lists_Abstract extends Database
                     $keyValue = $resultTheLine[$i]['value'];
                 }
             }
-            $sAction = \Apps\Models\ActionModel::getActionPageById(['id' => $this->params['defaultAction']]);
+            $sAction = \Core\Models\ActionModel::getActionPageById(['id' => $this->params['defaultAction']]);
             if ($sAction == 'visa_mail') {
                 if (PROD_MODE) {
                     $return = 'onmouseover="this.style.cursor=\'pointer\';" onClick="islockForSignatureBook(\'' .$keyValue. '\', \'' .$_SESSION['current_basket']['id']. '\', \'' .$_SESSION['current_basket']['group_id']. '\', true)"';
@@ -3299,7 +3299,7 @@ abstract class lists_Abstract extends Database
                         !empty($this->params['defaultAction']) && 
                         $lineIsDisabled === false
                     ) {
-                        $sAction = \Apps\Models\ActionModel::getActionPageById(['id' => $this->params['defaultAction']]);
+                        $sAction = \Core\Models\ActionModel::getActionPageById(['id' => $this->params['defaultAction']]);
                         if ($sAction == 'visa_mail') {
                             if (PROD_MODE) {
                                 $content .= '<td'.$columnStyle.' onmouseover="this.style.cursor=\'pointer\';" '
diff --git a/core/Controllers/ActionsController.php b/core/Controllers/ActionController.php
old mode 100755
new mode 100644
similarity index 88%
rename from core/Controllers/ActionsController.php
rename to core/Controllers/ActionController.php
index 65a23db241469bfe619c5f5032c6fe45b423c308..58beb2b37d85d5bb18c453dd28708303723b0633
--- a/core/Controllers/ActionsController.php
+++ b/core/Controllers/ActionController.php
@@ -4,7 +4,7 @@
 * See LICENCE.txt file at the root folder for more details.
 * This file is part of Maarch software.
 
-* @brief   ActionsController
+* @brief   ActionController
 * @author  dev <dev@maarch.org>
 * @ingroup core
 */
@@ -14,16 +14,16 @@ namespace Core\Controllers;
 use Psr\Http\Message\RequestInterface;
 use Psr\Http\Message\ResponseInterface;
 use Respect\Validation\Validator;
-use Core\Models\ActionsModel;
+use Core\Models\ActionModel;
 use Core\Models\StatusModel;
 use Core\Models\LangModel;
 
-class ActionsController
+class ActionController
 {
     public function getForAdministration(RequestInterface $request, ResponseInterface $response)
     {
         
-        $obj ['actions']= ActionsModel::getList();
+        $obj ['actions']= ActionModel::getList();
        
         return $response->withJson($obj);
     }
@@ -32,7 +32,7 @@ class ActionsController
     {
         if (isset($aArgs['id'])) {
             $id = $aArgs['id'];
-            $obj['action'] = ActionsModel::getById(['id' => $id]);
+            $obj['action'] = ActionModel::getById(['id' => $id]);
         } else {
             return $response
                 ->withStatus(500)
@@ -69,7 +69,7 @@ class ActionsController
         }
         $obj['action']['actionCategories'] = $arrActionCategories;
 
-        $obj['categoriesList'] = ActionsModel:: getLettersBoxCategories();
+        $obj['categoriesList'] = ActionModel:: getLettersBoxCategories();
 
         //array of id categoriesList
         foreach ($obj['categoriesList'] as $key => $category) {
@@ -83,9 +83,9 @@ class ActionsController
     
         $obj['statusList'] = StatusModel::getList();
         array_unshift($obj['statusList'], ['id'=>'_NOSTATUS_','label_status'=> _UNCHANGED]);
-        $obj['action_pagesList']=ActionsModel::getAction_pages();
+        $obj['action_pagesList']=ActionModel::getAction_pages();
         array_unshift($obj['action_pagesList']['actionsPageList'], ['id'=>'','label'=> _NO_PAGE, 'name'=>'', 'origin'=>'']);
-        $obj['keywordsList']=ActionsModel::getKeywords();
+        $obj['keywordsList']=ActionModel::getKeywords();
   
         return $response->withJson($obj);
     }
@@ -107,12 +107,12 @@ class ActionsController
                 ->withJson(['errors' => $errors]);
         }
     
-        $return = ActionsModel::create($aArgs);
+        $return = ActionModel::create($aArgs);
 
         if ($return) {
             $id = $aArgs['id'];
 
-            $obj = max(ActionsModel::getList());
+            $obj = max(ActionModel::getList());
         } else {
             return $response
                 ->withStatus(500)
@@ -144,11 +144,11 @@ class ActionsController
                 ->withJson(['errors' => $errors]);
         }
 
-        $return = ActionsModel::update($obj);
+        $return = ActionModel::update($obj);
 
         if ($return) {
             $id = $aArgs['id'];
-            $obj = ActionsModel::getById(['id' => $id]);
+            $obj = ActionModel::getById(['id' => $id]);
         } else {
             return $response
                 ->withStatus(500)
@@ -168,7 +168,7 @@ class ActionsController
     {
         if (isset($aArgs['id'])) {
             $id = $aArgs['id'];
-            $obj = ActionsModel::delete(['id' => $id]);
+            ActionModel::delete(['id' => $id]);
         } else {
             return $response
                 ->withStatus(500)
@@ -178,7 +178,7 @@ class ActionsController
         return $response->withJson(
             [
             'success'   => _ACTION. ' <b>' . $id .'</b> ' ._DELETED,
-            'action'      => ActionsModel::getList()
+            'action'      => ActionModel::getList()
             ]
         );
     }
@@ -199,7 +199,7 @@ class ActionsController
         }
 
         if ($mode == 'update') {
-            $obj = ActionsModel::getById(['id' => $aArgs['id']]);
+            $obj = ActionModel::getById(['id' => $aArgs['id']]);
            
             if (empty($obj)) {
         
@@ -244,16 +244,16 @@ class ActionsController
         $obj['action']['action_page'] = '';
         $obj['action']['id_status'] = '_NOSTATUS_';
         $obj['action']['create_id'] = false;
-        $obj['categoriesList'] = ActionsModel::getLettersBoxCategories();
+        $obj['categoriesList'] = ActionModel::getLettersBoxCategories();
         foreach ($obj['categoriesList'] as $key => $value) {
             $obj['categoriesList'][$key]['selected'] = true;
         }
 
         $obj['statusList'] = StatusModel::getList();
         array_unshift($obj['statusList'], ['id'=>'_NOSTATUS_','label_status'=> _UNCHANGED]);
-        $obj['action_pagesList'] = ActionsModel::getAction_pages();
+        $obj['action_pagesList'] = ActionModel::getAction_pages();
         array_unshift($obj['action_pagesList']['actionsPageList'], ['id'=>'','label'=> _NO_PAGE, 'name'=>'', 'origin'=>'']);
-        $obj['keywordsList']=ActionsModel::getKeywords();
+        $obj['keywordsList'] = ActionModel::getKeywords();
         $obj['lang'] = LangModel::getActionsForAdministrationLang();
         
         return $response->withJson($obj);
diff --git a/core/Controllers/HistoryController.php b/core/Controllers/HistoryController.php
index a6c4cb7785c47649bb44642ae725c265d64b979a..f9d670de83e73cb2f3bf7046e2cf90f031ca999b 100755
--- a/core/Controllers/HistoryController.php
+++ b/core/Controllers/HistoryController.php
@@ -22,7 +22,6 @@ use Psr\Http\Message\ResponseInterface;
 use Core\Models\HistoryModel;
 use Core\Models\ServiceModel;
 use Core\Models\ValidatorModel;
-use Core\Controllers\UtilsController;
 use Notifications\Controllers\NotificationsEventsController;
 
 class HistoryController
@@ -47,11 +46,6 @@ class HistoryController
         if(empty($aArgs['level'])){
             $aArgs['level'] = 'DEBUG';
         }
-        if (empty($_SESSION['user']['UserId'])) {
-            $user = 'BOT';
-        } else {
-            $user = $_SESSION['user']['UserId'];
-        }
 
         $traceInformations = [
             'WHERE'         => $aArgs['tableName'],
@@ -158,7 +152,7 @@ class HistoryController
         );
 
         $logLine = TextFormatModel::htmlWasher($logLine);
-        $logLine = UtilsController::wd_remove_accents(['string' => $logLine]);
+        $logLine = TextFormatModel::removeAccent(['string' => $logLine]);
 
         HistoryModel::writeLog([
             'logger'  => $logger,
diff --git a/core/Controllers/LogsController.php b/core/Controllers/LogsController.php
index 3018b047332439bf4c61687140bcb00bf4f435a2..666c49a1ba2209fe5e53549fcfac80f336eda92d 100644
--- a/core/Controllers/LogsController.php
+++ b/core/Controllers/LogsController.php
@@ -15,11 +15,11 @@
 
 namespace Core\Controllers;
 
+use Core\Models\TextFormatModel;
 use Psr\Http\Message\RequestInterface;
 use Psr\Http\Message\ResponseInterface;
 use Core\Models\ValidatorModel;
 use Core\Controllers\HistoryController;
-use Core\Controllers\UtilsController;
 
 if (!defined('_LOG4PHP'))
     define(
@@ -194,11 +194,8 @@ class LogsController
         $aArgs['message'] = str_replace("\n", '\n', $aArgs['message']);
 
         // Old method :
-        $aArgs['message'] = UtilsController::wash_html(
-            $aArgs['message'],
-            ''
-        );
-        $aArgs['message'] = UtilsController::wd_remove_accents(['string' => $aArgs['message']]);
+        $aArgs['message'] = TextFormatModel::htmlWasher($aArgs['message'], '');
+        $aArgs['message'] = TextFormatModel::removeAccent(['string' => $aArgs['message']]);
 
         if(!empty($_SESSION['user']['UserId'])){
             $aArgs['message'] = '[' . $_SESSION['user']['UserId'] . '] ' . $aArgs['message'];
diff --git a/core/Controllers/UtilsController.php b/core/Controllers/UtilsController.php
deleted file mode 100644
index a1e136301e8141d0d48cd99d2fd7ec6983d3761f..0000000000000000000000000000000000000000
--- a/core/Controllers/UtilsController.php
+++ /dev/null
@@ -1,118 +0,0 @@
-<?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 Utils Controller
- * @author dev@maarch.org
- * @ingroup core
- */
-
-namespace Core\Controllers;
-
-use Psr\Http\Message\RequestInterface;
-use Psr\Http\Message\ResponseInterface;
-
-
-class UtilsController
-{
-    public static function wd_remove_accents(array $aArgs = [])
-    {
-        if(empty($aArgs['charset'])){
-            $aArgs['charset'] = 'utf-8';
-        }
-
-        $str = htmlentities($aArgs['string'], ENT_NOQUOTES, $aArgs['charset']);
-
-        $str = preg_replace(
-            '#\&([A-za-z])(?:uml|circ|tilde|acute|grave|cedil|ring)\;#',
-            '\1',
-            $str
-        );
-        $str = preg_replace(
-            '#\&([A-za-z]{2})(?:lig)\;#',
-            '\1',
-            $str
-        );
-        $str = preg_replace(
-            '#\&[^;]+\;#',
-            '',
-            $str
-        );
-
-        return $str;
-    }
-
-    /**
-    * Cleans html string, replacing entities by utf-8 code
-    *
-    * @param  $var string  String to clean
-    * @return Cleaned string
-    */
-    public function wash_html($var, $mode="UNICODE")
-    {
-        if($mode == "UNICODE")
-        {
-            $var = str_replace("<br/>","\\n",$var);
-            $var = str_replace("<br />","\\n",$var);
-            $var = str_replace("<br/>","\\n",$var);
-            $var = str_replace("&nbsp;"," ",$var);
-            $var = str_replace("&eacute;", "\u00e9",$var);
-            $var = str_replace("&egrave;","\u00e8",$var);
-            $var = str_replace("&ecirc;","\00ea",$var);
-            $var = str_replace("&agrave;","\u00e0",$var);
-            $var = str_replace("&acirc;","\u00e2",$var);
-            $var = str_replace("&icirc;","\u00ee",$var);
-            $var = str_replace("&ocirc;","\u00f4",$var);
-            $var = str_replace("&ucirc;","\u00fb",$var);
-            $var = str_replace("&acute;","\u0027",$var);
-            $var = str_replace("&deg;","\u00b0",$var);
-            $var = str_replace("&rsquo;", "\u2019",$var);
-        }
-        else if($mode == 'NO_ACCENT')
-        {
-            $var = str_replace("<br/>","\\n",$var);
-            $var = str_replace("<br />","\\n",$var);
-            $var = str_replace("<br/>","\\n",$var);
-            $var = str_replace("&nbsp;"," ",$var);
-            $var = str_replace("&eacute;", "e",$var);
-            $var = str_replace("&egrave;","e",$var);
-            $var = str_replace("&ecirc;","e",$var);
-            $var = str_replace("&agrave;","a",$var);
-            $var = str_replace("&acirc;","a",$var);
-            $var = str_replace("&icirc;","i",$var);
-            $var = str_replace("&ocirc;","o",$var);
-            $var = str_replace("&ucirc;","u",$var);
-            $var = str_replace("&acute;","",$var);
-            $var = str_replace("&deg;","o",$var);
-            $var = str_replace("&rsquo;", "'",$var);
-
-            // AT LAST
-            $var = str_replace("&", " et ",$var);
-        }
-        else
-        {
-            $var = str_replace("<br/>","\\n",$var);
-            $var = str_replace("<br />","\\n",$var);
-            $var = str_replace("<br/>","\\n",$var);
-            $var = str_replace("&nbsp;"," ",$var);
-            $var = str_replace("&eacute;", "é",$var);
-            $var = str_replace("&egrave;","è",$var);
-            $var = str_replace("&ecirc;","ê",$var);
-            $var = str_replace("&agrave;","à",$var);
-            $var = str_replace("&acirc;","â",$var);
-            $var = str_replace("&icirc;","î",$var);
-            $var = str_replace("&ocirc;","ô",$var);
-            $var = str_replace("&ucirc;","û",$var);
-            $var = str_replace("&acute;","",$var);
-            $var = str_replace("&deg;","°",$var);
-            $var = str_replace("&rsquo;", "'",$var);
-        }
-        return $var;
-    }
-}
diff --git a/core/Models/ActionsModel.php b/core/Models/ActionModel.php
old mode 100755
new mode 100644
similarity index 80%
rename from core/Models/ActionsModel.php
rename to core/Models/ActionModel.php
index 107e345f99534d31a4a3484cbb199fcdd79122d3..766e34a783f71e2c4d94eabfc543f2b3b5d08526
--- a/core/Models/ActionsModel.php
+++ b/core/Models/ActionModel.php
@@ -8,14 +8,14 @@
 */
 
 /**
-* @brief Status Model
+* @brief Action Model
 * @author dev@maarch.org
 * @ingroup core
 */
 
 namespace Core\Models;
 
-class ActionsModel extends ActionsModelAbstract
+class ActionModel extends ActionModelAbstract
 {
     // Do your stuff in this class
 }
diff --git a/core/Models/ActionsModelAbstract.php b/core/Models/ActionModelAbstract.php
old mode 100755
new mode 100644
similarity index 88%
rename from core/Models/ActionsModelAbstract.php
rename to core/Models/ActionModelAbstract.php
index 15fed6435c298484c4356bd357ffedf8c6ffd693..773d231741fe8ed21f05b823d9a3bf54cba2d8ed
--- a/core/Models/ActionsModelAbstract.php
+++ b/core/Models/ActionModelAbstract.php
@@ -4,14 +4,14 @@
 * See LICENCE.txt file at the root folder for more details.
 * This file is part of Maarch software.
 
-* @brief   ActionsModelAbstract
+* @brief   ActionModelAbstract
 * @author  dev <dev@maarch.org>
 * @ingroup core
 */
 
 namespace Core\Models;
 
-class ActionsModelAbstract
+class ActionModelAbstract
 {
     public static function getList()
     {
@@ -67,7 +67,7 @@ class ActionsModelAbstract
             ]
         );
 
-        $tab['action_id'] = max(ActionsModel::getList())['id'];
+        $tab['action_id'] = max(ActionModel::getList())['id'];
 
         for ($i=0;$i<count($actioncategories);$i++) {
 
@@ -285,5 +285,43 @@ class ActionsModelAbstract
 
         return $tabKeyword;
     }
+
+    public static function getActionPageById(array $aArgs)
+    {
+        ValidatorModel::notEmpty($aArgs, ['id']);
+        ValidatorModel::intVal($aArgs, ['id']);
+
+        $action = DatabaseModel::select([
+            'select'    => ['action_page'],
+            'table'     => ['actions'],
+            'where'     => ['id = ? AND enabled = ?'],
+            'data'      => [$aArgs['id'], 'Y']
+        ]);
+
+        if (empty($action[0])) {
+            return '';
+        }
+
+        return $action[0]['action_page'];
+    }
+
+    public static function getDefaultActionByGroupBasketId(array $aArgs)
+    {
+        ValidatorModel::notEmpty($aArgs, ['groupId', 'basketId']);
+        ValidatorModel::stringType($aArgs, ['groupId', 'basketId']);
+
+        $action = DatabaseModel::select([
+            'select'    => ['id_action'],
+            'table'     => ['actions_groupbaskets'],
+            'where'     => ['group_id = ?', 'basket_id = ?', 'default_action_list = ?'],
+            'data'      => [$aArgs['groupId'], $aArgs['basketId'], 'Y']
+        ]);
+
+        if (empty($action[0])) {
+            return '';
+        }
+
+        return $action[0]['id_action'];
+    }
 }
 
diff --git a/core/Models/TextFormatModelAbstract.php b/core/Models/TextFormatModelAbstract.php
index b9d5f4fd2ae33febecc15d4a695c03b27b4bf5f7..af8816d5ee049ae59c8cd71b8ae3cd54856f1d79 100755
--- a/core/Models/TextFormatModelAbstract.php
+++ b/core/Models/TextFormatModelAbstract.php
@@ -50,23 +50,59 @@ class TextFormatModelAbstract
         return $last_date;
     }
 
-    public static function htmlWasher($html)
+    public static function removeAccent(array $aArgs)
     {
-        $html = str_replace("<br/>", "\\n", $html);
-        $html = str_replace("<br />", "\\n", $html);
-        $html = str_replace("<br/>", "\\n", $html);
-        $html = str_replace("&nbsp;", " ", $html);
-        $html = str_replace("&eacute;", "\u00e9", $html);
-        $html = str_replace("&egrave;", "\u00e8", $html);
-        $html = str_replace("&ecirc;", "\00ea", $html);
-        $html = str_replace("&agrave;", "\u00e0", $html);
-        $html = str_replace("&acirc;", "\u00e2", $html);
-        $html = str_replace("&icirc;", "\u00ee", $html);
-        $html = str_replace("&ocirc;", "\u00f4", $html);
-        $html = str_replace("&ucirc;", "\u00fb", $html);
-        $html = str_replace("&acute;", "\u0027", $html);
-        $html = str_replace("&deg;", "\u00b0", $html);
-        $html = str_replace("&rsquo;", "\u2019", $html);
+        ValidatorModel::notEmpty($aArgs, ['string']);
+        ValidatorModel::stringType($aArgs, ['string', 'charset']);
+
+        if(empty($aArgs['charset'])){
+            $aArgs['charset'] = 'utf-8';
+        }
+
+        $string = htmlentities($aArgs['string'], ENT_NOQUOTES, $aArgs['charset']);
+
+        $string = preg_replace('#\&([A-za-z])(?:uml|circ|tilde|acute|grave|cedil|ring)\;#', '\1', $string);
+        $string = preg_replace('#\&([A-za-z]{2})(?:lig)\;#', '\1', $string);
+        $string = preg_replace('#\&[^;]+\;#', '', $string);
+
+        return $string;
+    }
+
+    public static function htmlWasher($html, $mode = 'unicode')
+    {
+        if ($mode == 'unicode') {
+            $html = str_replace("<br/>", "\\n", $html);
+            $html = str_replace("<br />", "\\n", $html);
+            $html = str_replace("<br/>", "\\n", $html);
+            $html = str_replace("&nbsp;", " ", $html);
+            $html = str_replace("&eacute;", "\u00e9", $html);
+            $html = str_replace("&egrave;", "\u00e8", $html);
+            $html = str_replace("&ecirc;", "\00ea", $html);
+            $html = str_replace("&agrave;", "\u00e0", $html);
+            $html = str_replace("&acirc;", "\u00e2", $html);
+            $html = str_replace("&icirc;", "\u00ee", $html);
+            $html = str_replace("&ocirc;", "\u00f4", $html);
+            $html = str_replace("&ucirc;", "\u00fb", $html);
+            $html = str_replace("&acute;", "\u0027", $html);
+            $html = str_replace("&deg;", "\u00b0", $html);
+            $html = str_replace("&rsquo;", "\u2019", $html);
+        } else {
+            $html = str_replace("<br/>", "\\n", $html);
+            $html = str_replace("<br />", "\\n", $html);
+            $html = str_replace("<br/>", "\\n", $html);
+            $html = str_replace("&nbsp;", " ", $html);
+            $html = str_replace("&eacute;", "é", $html);
+            $html = str_replace("&egrave;", "è", $html);
+            $html = str_replace("&ecirc;", "ê", $html);
+            $html = str_replace("&agrave;", "à", $html);
+            $html = str_replace("&acirc;", "â", $html);
+            $html = str_replace("&icirc;", "î", $html);
+            $html = str_replace("&ocirc;", "ô", $html);
+            $html = str_replace("&ucirc;", "û", $html);
+            $html = str_replace("&acute;", "", $html);
+            $html = str_replace("&deg;", "°", $html);
+            $html = str_replace("&rsquo;", "'", $html);
+        }
 
         return $html;
     }
diff --git a/core/Models/UserModelAbstract.php b/core/Models/UserModelAbstract.php
index 45eeb5d9897703ce6aaaf12194656a252efe4830..6b2df2607c38888290cc37abf68e428948fb9ee6 100755
--- a/core/Models/UserModelAbstract.php
+++ b/core/Models/UserModelAbstract.php
@@ -459,7 +459,7 @@ class UserModelAbstract
         return $aGroup[0];
     }
 
-    public static function getPrimaryEntityByUserId(array $aArgs = [])
+    public static function getPrimaryEntityByUserId(array $aArgs)
     {
         ValidatorModel::notEmpty($aArgs, ['userId']);
         ValidatorModel::stringType($aArgs, ['userId']);
diff --git a/core/Test/ActionsControllerTest.php b/core/Test/ActionsControllerTest.php
index eb2d0798680487d62c91b0d3646566400d0ec0b1..47086af9ce67822b385f016be648a323588738bb 100755
--- a/core/Test/ActionsControllerTest.php
+++ b/core/Test/ActionsControllerTest.php
@@ -17,7 +17,7 @@ class ActionsControllerTest extends TestCase
 {
     public function testCRUD()
     {
-        $actionController = new \Core\Controllers\ActionsController();
+        $actionController = new \Core\Controllers\ActionController();
 
         //  CREATE
         $environment    = \Slim\Http\Environment::mock(['REQUEST_METHOD' => 'POST']);
diff --git a/modules/basket/Models/BasketsModelAbstract.php b/modules/basket/Models/BasketsModelAbstract.php
index ee8800360774ab7546a1be61729e4b3d5159491c..f67de2b60a9ee4768c411bb78482234b57d7fcfa 100755
--- a/modules/basket/Models/BasketsModelAbstract.php
+++ b/modules/basket/Models/BasketsModelAbstract.php
@@ -18,6 +18,7 @@ namespace Baskets\Models;
 use Core\Models\DatabaseModel;
 use Core\Models\UserModel;
 use Core\Models\ValidatorModel;
+use Entities\Models\EntityModel;
 
 require_once 'core/class/SecurityControler.php';
 
@@ -169,12 +170,12 @@ class BasketsModelAbstract
         return true;
     }
 
-    public static function updateBasketsRedirection(array $aArgs = [])
+    public static function updateBasketsRedirection(array $aArgs)
     {
-        static::checkRequired($aArgs, ['userId', 'basketOwner', 'basketId', 'userAbs', 'newUser']);
-        static::checkString($aArgs, ['userId']);
+        ValidatorModel::notEmpty($aArgs, ['userId', 'basketOwner', 'basketId', 'userAbs', 'newUser']);
+        ValidatorModel::stringType($aArgs, ['userId']);
 
-        $isUpdated = parent::update([
+        DatabaseModel::update([
             'table'     => 'user_abs',
             'set'       => [
                 'new_user' => $aArgs['newUser']
@@ -200,7 +201,8 @@ class BasketsModelAbstract
         return true;
     }
 
-    public static function getRedirectedBasketsByUserId(array $aArgs) {
+    public static function getRedirectedBasketsByUserId(array $aArgs)
+    {
         ValidatorModel::notEmpty($aArgs, ['userId']);
         ValidatorModel::stringType($aArgs, ['userId']);
 
@@ -284,4 +286,57 @@ class BasketsModelAbstract
 
         return $coloredBaskets;
     }
+
+    // TODO In Progress
+    public static function getPreparedClauseById(array $aArgs)
+    {
+        ValidatorModel::notEmpty($aArgs, ['id', 'userId']);
+        ValidatorModel::stringType($aArgs, ['id', 'userId']);
+
+        $aBasket = DatabaseModel::select([
+            'select'    => ['basket_clause'],
+            'table'     => ['baskets'],
+            'where'     => ['basket_id = ?'],
+            'data'      => [$aArgs['id']]
+        ]);
+
+        $clause = $aBasket[0]['basket_clause'];
+
+        if (preg_match('/@user/', $clause)) {
+            $clause = str_replace('@user', "'{$aArgs['userId']}'", $clause);
+        }
+        if (preg_match('/@email/', $clause)) {
+            $user = UserModel::getByUserId(['userId' => $aArgs['userId'], 'select' => ['mail']]);
+            $clause = str_replace('@email', "'{$user['mail']}'", $clause);
+        }
+        if (preg_match('/@my_entities/', $clause)) {
+            $entities = EntityModel::getByUserId(['userId' => $aArgs['userId'], 'select' => ['entity_id']]);
+
+            $myEntitiesClause = '';
+            foreach ($entities as $key => $entity) {
+                if ($key > 0) {
+                    $myEntitiesClause .= ", ";
+                }
+                $myEntitiesClause .= "'{$entity['entity_id']}'";
+            }
+
+            if (empty($myEntitiesClause)) {
+                $myEntitiesClause = "''";
+            }
+
+            $clause = str_replace('@my_entities', $myEntitiesClause, $clause);
+        }
+        if (preg_match('/@my_primary_entity/', $clause)) {
+            $entity = UserModel::getPrimaryEntityByUserId(['userId' => $aArgs['userId']]);
+
+            $primaryEntity = $entity['entity_id'];
+            if (empty($entity)) {
+                $primaryEntity = "''";
+            }
+
+            $clause = str_replace('@my_primary_entity', $primaryEntity, $clause);
+        }
+
+        return $clause;
+    }
 }
\ No newline at end of file
diff --git a/modules/entities/Models/EntityModelAbstract.php b/modules/entities/Models/EntityModelAbstract.php
index da49cf51fe1a3791f5fe95840b773a7c820bc6e7..7bf89607b9326f62b24ebf9575830e0e1332f10d 100755
--- a/modules/entities/Models/EntityModelAbstract.php
+++ b/modules/entities/Models/EntityModelAbstract.php
@@ -77,19 +77,20 @@ class EntityModelAbstract
         return $aReturn;
     }
 
-    public static function getByUserId(array $aArgs = [])
+    public static function getByUserId(array $aArgs)
     {
         ValidatorModel::notEmpty($aArgs, ['userId']);
         ValidatorModel::stringType($aArgs, ['userId']);
+        ValidatorModel::arrayType($aArgs, ['select']);
 
-        $aReturn = DatabaseModel::select([
+        $aEntities = DatabaseModel::select([
             'select'    => empty($aArgs['select']) ? ['*'] : $aArgs['select'],
             'table'     => ['users_entities'],
             'where'     => ['user_id = ?'],
             'data'      => [$aArgs['userId']]
         ]);
 
-        return $aReturn;
+        return $aEntities;
     }
 
     private static function getEntityChilds(array $aArgs = [])
diff --git a/modules/visa/Controllers/VisaController.php b/modules/visa/Controllers/VisaController.php
index 8e5dbe5a708315f4db6b4d4036f1df209385c334..d7e2e3d9cdcee9ceed8dbca8478999b425c138eb 100755
--- a/modules/visa/Controllers/VisaController.php
+++ b/modules/visa/Controllers/VisaController.php
@@ -13,8 +13,8 @@
 */
 namespace Visa\Controllers;
 
-use Apps\Models\ActionModel;
 use Attachments\Models\AttachmentsModel;
+use Core\Models\ActionModel;
 use Core\Models\ContactModel;
 use Core\Models\LinkModel;
 use Core\Models\ListinstanceModel;
diff --git a/rest/index.php b/rest/index.php
index 9921d8d09baafdb704c7be10bfc161b1be4823b8..7815d23323588deb3ea526ba261d18066d7e86aa 100755
--- a/rest/index.php
+++ b/rest/index.php
@@ -226,12 +226,12 @@ $app->get('/administration/history/eventDate/{date}', \Core\Controllers\HistoryC
 $app->get('/administration/historyBatch/eventDate/{date}', \Core\Controllers\HistoryController::class . ':getBatchForAdministration');
 
 //actions
-$app->get('/administration/actions', \Core\Controllers\ActionsController::class . ':getForAdministration');
-$app->get('/initAction', \Core\Controllers\ActionsController::class . ':initAction');
-$app->get('/administration/actions/{id}', \Core\Controllers\ActionsController::class . ':getByIdForAdministration');
-$app->post('/actions', \Core\Controllers\ActionsController::class . ':create');
-$app->put('/actions/{id}', \Core\Controllers\ActionsController::class . ':update');
-$app->delete('/actions/{id}', \Core\Controllers\ActionsController::class . ':delete');
+$app->get('/administration/actions', \Core\Controllers\ActionController::class . ':getForAdministration');
+$app->get('/initAction', \Core\Controllers\ActionController::class . ':initAction');
+$app->get('/administration/actions/{id}', \Core\Controllers\ActionController::class . ':getByIdForAdministration');
+$app->post('/actions', \Core\Controllers\ActionController::class . ':create');
+$app->put('/actions/{id}', \Core\Controllers\ActionController::class . ':update');
+$app->delete('/actions/{id}', \Core\Controllers\ActionController::class . ':delete');
 
 //Notifications
 $app->get('/notifications', \Notifications\Controllers\NotificationController::class . ':get');