diff --git a/apps/maarch_entreprise/services/Table.php b/apps/maarch_entreprise/services/Table.php
index a0a2d24e3cba023f7ba276e0f14634741617a544..e6fa8febe16dd8452d2d5d715b5424fd42d2ce30 100644
--- a/apps/maarch_entreprise/services/Table.php
+++ b/apps/maarch_entreprise/services/Table.php
@@ -24,7 +24,6 @@ require_once 'core/services/Abstract.php';
 require_once 'core/core_tables.php';
 require_once 'core/class/class_functions.php';
 require_once 'core/class/class_db_pdo.php';
-require_once 'core/services/Logs.php';
 
 /**
  * Fonctions pour réaliser le CRUD sur la base de donnees
diff --git a/core/services/Logs.php b/core/services/Logs.php
deleted file mode 100644
index 1866155df0c58cb11eb0b5b298ebf8e60185d417..0000000000000000000000000000000000000000
--- a/core/services/Logs.php
+++ /dev/null
@@ -1,26 +0,0 @@
-<?php
-
-/**
-*   @copyright 2016 capgemini
-*
-*   This file is part of Maarch Framework.
-*
-*   Maarch Framework is free software: you can redistribute it and/or modify
-*   it under the terms of the GNU General Public License as published by
-*   the Free Software Foundation, either version 3 of the License, or
-*   (at your option) any later version.
-*
-*   Maarch Framework is distributed in the hope that it will be useful,
-*   but WITHOUT ANY WARRANTY; without even the implied warranty of
-*   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-*   GNU General Public License for more details.
-*
-*   You should have received a copy of the GNU General Public License
-*   along with Maarch Framework.  If not, see <http://www.gnu.org/licenses/>.
-*/
-
-require_once 'core'. DIRECTORY_SEPARATOR . 'services'. DIRECTORY_SEPARATOR . 'LogsAbstract.php';
-
-class Core_Logs_Service extends Core_LogsAbstract_Service {
-	// Do your stuff
-}
diff --git a/core/services/LogsAbstract.php b/core/services/LogsAbstract.php
deleted file mode 100644
index 1468c7de5e0595654ddc68577fa7a496475a6692..0000000000000000000000000000000000000000
--- a/core/services/LogsAbstract.php
+++ /dev/null
@@ -1,331 +0,0 @@
-<?php
-
-/**
-*   @copyright 2017 Maarch
-*
-*   This file is part of Maarch Framework.
-*
-*   Maarch Framework is free software: you can redistribute it and/or modify
-*   it under the terms of the GNU General Public License as published by
-*   the Free Software Foundation, either version 3 of the License, or
-*   (at your option) any later version.
-*
-*   Maarch Framework is distributed in the hope that it will be useful,
-*   but WITHOUT ANY WARRANTY; without even the implied warranty of
-*   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-*   GNU General Public License for more details.
-*
-*   You should have received a copy of the GNU General Public License
-*   along with Maarch Framework.  If not, see <http://www.gnu.org/licenses/>.
-*/
-
-require_once 'core'. DIRECTORY_SEPARATOR . 'services'. DIRECTORY_SEPARATOR . 'Abstract.php';
-require_once 'core'. DIRECTORY_SEPARATOR . 'services'. DIRECTORY_SEPARATOR . 'String.php';
-if (!defined('_LOG4PHP'))
-    define(
-        '_LOG4PHP',
-        'log4php'
-    );
-
-if (!defined('_BDD'))
-    define(
-        '_BDD',
-        'database'
-    );
-
-if (!defined('_LOGGER_NAME_TECH_DEFAULT'))
-    define(
-        '_LOGGER_NAME_TECH_DEFAULT',
-        'loggerTechnique'
-    );
-
-if (!defined('_LOGGER_NAME_FUNC_DEFAULT'))
-    define(
-        '_LOGGER_NAME_FUNC_DEFAULT',
-        'loggerFonctionnel'
-    );
-require_once 'apps'. DIRECTORY_SEPARATOR . 'maarch_entreprise'. DIRECTORY_SEPARATOR . 'tools'. DIRECTORY_SEPARATOR . 'log4php'. DIRECTORY_SEPARATOR . 'Logger.php';
-
-class Core_LogsAbstract_Service extends Core_Abstract_Service {
-
-    protected static function getLoggingMethodConfFile()
-    {
-        $xmlFileName = 'logging_method.xml';
-        if (file_exists($sLoggingMethodConfFile = 'custom'
-            .DIRECTORY_SEPARATOR.$_SESSION['custom_override_id']
-            .DIRECTORY_SEPARATOR . 'apps'
-            .DIRECTORY_SEPARATOR.$_SESSION['config']['app_id']
-            .DIRECTORY_SEPARATOR.'xml'
-            .DIRECTORY_SEPARATOR.$xmlFileName
-        )) {
-            return $sLoggingMethodConfFile;
-        }
-        if (file_exists($sLoggingMethodConfFile =
-            'apps'
-            .DIRECTORY_SEPARATOR.$_SESSION['config']['app_id']
-            .DIRECTORY_SEPARATOR.'xml'
-            .DIRECTORY_SEPARATOR.$xmlFileName
-        )) {
-            return $sLoggingMethodConfFile;
-        }
-        return null;
-    }
-    public static function getLoggingFormat(array $aArgs = []) {
-    	self::checkRequired($aArgs,['key']);
-    	self::checkNumeric($aArgs,['key']);
-    	$logging_methods = self::getLoggingMethod($aArgs);
-    	return empty($logging_methods[$aArgs['key']]['LOG_FORMAT']) ? '[%RESULT%][%CODE_METIER%][%WHERE%][%ID%][%HOW%][%USER%][%WHAT%][%ID_MODULE%][%REMOTE_IP%]' : $logging_methods[$aArgs['key']]['LOG_FORMAT'];
-    }
-    public static function getLoggingCodeMetier(array $aArgs = []) {
-    	self::checkRequired($aArgs,['key']);
-    	self::checkNumeric($aArgs,['key']);
-    	$logging_methods = self::getLoggingFormat($aArgs);
-    	return empty($logging_methods[$aArgs['key']]['CODE_METIER']) ? '[%RESULT%][%CODE_METIER%][%WHERE%][%ID%][%HOW%][%USER%][%WHAT%][%ID_MODULE%][%REMOTE_IP%]' : $logging_methods[$aArgs['key']]['CODE_METIER'];
-    }
-    /**
-    * Get the logging method in the configuration file
-    */
-    protected static function getLoggingMethod(array $aArgs = []) {
-        $sLoggingMethodConfFile = self::getLoggingMethodConfFile();
-
-        $logging_methods = [];
-    	if ( ! $sLoggingMethodConfFile = self::getLoggingMethodConfFile() ) {
-            $logging_methods[0]['ID']               = 'database';
-            $logging_methods[0]['ACTIVATED']        = true;
-            $logging_methods[1]['ID']               = 'log4php';
-            $logging_methods[1]['ACTIVATED']        = true;
-            $logging_methods[1]['LOGGER_NAME_TECH'] = 'loggerTechnique';
-            $logging_methods[1]['LOGGER_NAME_FUNC'] = 'loggerFonctionnel';
-            $logging_methods[1]['LOG_FORMAT']       = '[%RESULT%][%CODE_METIER%][%WHERE%][%ID%][%HOW%][%USER%][%WHAT%][%ID_MODULE%][%REMOTE_IP%]';
-            $logging_methods[1]['CODE_METIER']      = 'MAARCH';
-            return $logging_methods;
-        }
-
-        if (! file_exists($sLoggingMethodConfFile) ) {
-            throw new \Exception('not file_exists : '.$sLoggingMethodConfFile);
-        }
-        $xmlConfig = @simplexml_load_file($sLoggingMethodConfFile);
-        if (! $xmlConfig) {
-            throw new \Exception('simplexml_load_file failed : '.$sLoggingMethodConfFile);
-        }
-        if (! $xmlConfig->METHOD) {
-            throw new \Exception('no data METHOD found : '.$sLoggingMethodConfFile);
-        }
-
-        foreach ($xmlConfig->METHOD as $METHOD) {
-            $id = ((string)$METHOD->ID);
-            $activated = ((boolean)$METHOD->ENABLED);
-            $loggerNameTech = ((string)$METHOD->LOGGER_NAME_TECH);
-            $loggerNameFunc = ((string)$METHOD->LOGGER_NAME_FUNC);
-            $logFormat = ((string)$METHOD->APPLI_LOG_FORMAT);
-            $codeMetier = ((string)$METHOD->CODE_METIER);
-
-            array_push(
-                $logging_methods,
-                array(
-                    'ID'         => $id,
-                    'ACTIVATED'  => $activated,
-                    'LOGGER_NAME_TECH' => $loggerNameTech,
-                    'LOGGER_NAME_FUNC' => $loggerNameFunc,
-                    'LOG_FORMAT'    => $logFormat,
-                    'CODE_METIER'   => $codeMetier
-                )
-            );
-        }
-
-        return $logging_methods;
-    }
-
-	protected static function getConfFile(array $aArgs = []) {
-		if ( empty($_SESSION['config']['app_id']) ) {
-			$_SESSION['config']['app_id'] = 'maarch_entreprise';
-		}
-        if (
-        	!empty($_SESSION['config']['corepath']) && !empty($_SESSION['custom_override_id'])
-        	&& file_exists($configFileLog4PHP =
-            $_SESSION['config']['corepath']. DIRECTORY_SEPARATOR . 'custom'
-            . DIRECTORY_SEPARATOR . $_SESSION['custom_override_id']
-            . DIRECTORY_SEPARATOR . 'apps'
-            . DIRECTORY_SEPARATOR . $_SESSION['config']['app_id']
-            . DIRECTORY_SEPARATOR . 'xml'
-            . DIRECTORY_SEPARATOR . 'log4php.xml'
-        )) {
-            return $configFileLog4PHP;
-        }
-        if (file_exists($configFileLog4PHP =
-            'apps'
-            . DIRECTORY_SEPARATOR . $_SESSION['config']['app_id']
-            . DIRECTORY_SEPARATOR . 'xml'
-            . DIRECTORY_SEPARATOR . 'log4php.xml'
-        )) {
-            return $configFileLog4PHP;
-        }
-        return 'apps'
-            . DIRECTORY_SEPARATOR . $_SESSION['config']['app_id']
-            . DIRECTORY_SEPARATOR . 'xml'
-            . DIRECTORY_SEPARATOR . 'log4php.default.xml';
-	}
-
-	protected static function format_message(array &$aArgs) {
-		$aArgs['message'] = @$aArgs['message'];
-		switch (true) {
-			case is_object($aArgs['message']):
-                if ( $aArgs['message'] instanceof \Exception ) {
-                    $e = $aArgs['message'];
-                    $aArgs['code'] = $e->getCode();
-                    $aArgs['message'] = 'Exception: '.$e->getMessage();
-                    $aArgs['debug'] = $e->getTraceAsString();
-                    break;
-                }
-				$aArgs['message'] = '--object--';
-				break;
-			case is_array($aArgs['message']):
-				$aArgs['message'] = '--array--';
-				break;
-			default:
-				$aArgs['message'] = (string)$aArgs['message'];
-				break;
-		}
-		$aArgs['message'] = str_replace("\n", '\n', $aArgs['message']);
-
-		// Old method :
-        $formatter = new functions();
-        $aArgs['message'] = $formatter->wash_html(
-            $aArgs['message'],
-            ''
-        );
-        $aArgs['message'] = Core_String_Service::wd_remove_accents($aArgs['message']);
-
-        if(!empty($_SESSION['user']['UserId'])){
-            $aArgs['message'] = '[' . $_SESSION['user']['UserId'] . '] ' . $aArgs['message'];
-        }
-
-		return $aArgs;
-	}
-	protected static function logs(array $aArgs = []) {
-		// Initialisation du Logger :
-		Logger::configure(
-            self::getConfFile()
-        );
-        if ( @$aArgs['class'] ) {
-            Logger::getLogger($aArgs['class']);
-        }
-        $aLoggingMethods = self::getLoggingMethod();
-
-        $aArgs = self::format_message($aArgs);
-            if ( @$aArgs['class'] ) {
-                $sLog .= "[class:{$aArgs['class']}]";
-                Logger::getLogger($aArgs['class']);
-            }
-
-        foreach ($aLoggingMethods as $logging_method) {
-            if ( ! $logging_method['ACTIVATED'] ) {
-                continue;
-            }
-
-            if (isset($aArgs['isTech']) && $aArgs['isTech']) {
-                $logger = Logger::getLogger(
-                    $logging_method['LOGGER_NAME_TECH']
-                );
-            } else {
-                if(!isset($logging_method['LOGGER_NAME_FUNC'])){
-                    $logging_method['LOGGER_NAME_FUNC'] = 'loggerFonctionnel';
-                }
-                $logger = Logger::getLogger(
-                    $logging_method['LOGGER_NAME_FUNC']
-                );
-            }
-            if ( empty($logger) ) {
-            	throw new \Exception('logger not-loading', 1);
-            }
-            // Format :
-    		$sLog = '';
-    		if ( @$aArgs['file'] ) {
-    			$sLog .= "[file:{$aArgs['file']}]";
-    		}
-    		if ( @$aArgs['class'] ) {
-    			$sLog .= "[class:{$aArgs['class']}]";
-    		}
-    		if ( @$aArgs['function'] ) {
-    			$sLog .= "[function:{$aArgs['function']}]";
-    		}
-    		if ( @$aArgs['code'] ) {
-    			$aArgs['code'] = (int)$aArgs['code'];
-    			$sLog .= "[code:{$aArgs['code']}]";
-    		}
-
-            if(!isset($logging_method['CODE_METIER'])){
-                $logging_method['CODE_METIER'] = 'SIPol';
-            }
-            $sLog = str_replace('%CODE_METIER%', $logging_method['CODE_METIER'], "{$sLog}{$aArgs['message']}");
-
-            // Log :
-            switch ($aArgs['type']) {
-            	case 'debug':
-                case _LEVEL_DEBUG:
-                    $logger->debug($sLog);
-                    break;
-
-            	case 'info':
-                case _LEVEL_INFO:
-                    $logger->info($sLog);
-                    break;
-
-            	case 'warning':
-                case _LEVEL_WARN:
-                    $logger->warn($sLog);
-                    break;
-
-            	case 'error':
-                case _LEVEL_ERROR:
-                    $logger->error($sLog);
-                    break;
-
-                case _LEVEL_FATAL:
-                    $logger->fatal($sLog);
-                    break;
-
-                default:
-                    $logger->error($sLog);
-            }
-        }
-		return true;
-	}
-	public static function debug(array $aArgs = []) {
-		$aArgs['type'] = 'debug';
-		return self::logs($aArgs);
-	}
-	public static function info(array $aArgs = []) {
-		$aArgs['type'] = 'info';
-		return self::logs($aArgs);
-	}
-	public static function warning(array $aArgs = []) {
-		$aArgs['type'] = 'warning';
-		return self::logs($aArgs);
-	}
-    public static function error(array $aArgs = []) {
-        $aArgs['type'] = 'error';
-        return self::logs($aArgs);
-    }
-    public static function fatal(array $aArgs = []) {
-        $aArgs['type'] = _LEVEL_FATAL;
-        return self::logs($aArgs);
-    }
-
-    /*
-    timestart : timestamp Debut
-    timeend : timestamp Fin
-    level : level log4php
-    message : message dans les logs
-    */
-    public static function executionTimeLog($timestart, $timeend, $level, $message){
-        if(empty($timeend)){
-            $timeend = microtime(true);
-        }
-        $time = $timeend - $timestart;
-
-        self::$level(['message' => $message.'. Done in ' . number_format($time, 3) . ' secondes.']);
-
-    }
-}
-
diff --git a/core/services/Modules.php b/core/services/Modules.php
deleted file mode 100644
index b4129d12de0b9d21ecb01649132a11dbda530dcd..0000000000000000000000000000000000000000
--- a/core/services/Modules.php
+++ /dev/null
@@ -1,26 +0,0 @@
-<?php
-
-/**
-*   @copyright 2016 capgemini
-*
-*   This file is part of Maarch Framework.
-*
-*   Maarch Framework is free software: you can redistribute it and/or modify
-*   it under the terms of the GNU General Public License as published by
-*   the Free Software Foundation, either version 3 of the License, or
-*   (at your option) any later version.
-*
-*   Maarch Framework is distributed in the hope that it will be useful,
-*   but WITHOUT ANY WARRANTY; without even the implied warranty of
-*   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-*   GNU General Public License for more details.
-*
-*   You should have received a copy of the GNU General Public License
-*   along with Maarch Framework.  If not, see <http://www.gnu.org/licenses/>.
-*/
-
-require_once 'core/services/ModulesAbstract.php';
-
-class Core_Modules_Service extends Core_ModulesAbstract_Service {
-	// Do your stuff
-}
\ No newline at end of file
diff --git a/core/services/ModulesAbstract.php b/core/services/ModulesAbstract.php
deleted file mode 100644
index 5343ea8f4a58163bb92cf7dafd3f247eb0be441b..0000000000000000000000000000000000000000
--- a/core/services/ModulesAbstract.php
+++ /dev/null
@@ -1,133 +0,0 @@
-<?php
-
-/**
-*   @copyright 2017 Maarch
-*
-*   This file is part of Maarch Framework.
-*
-*   Maarch Framework is free software: you can redistribute it and/or modify
-*   it under the terms of the GNU General Public License as published by
-*   the Free Software Foundation, either version 3 of the License, or
-*   (at your option) any later version.
-*
-*   Maarch Framework is distributed in the hope that it will be useful,
-*   but WITHOUT ANY WARRANTY; without even the implied warranty of
-*   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-*   GNU General Public License for more details.
-*
-*   You should have received a copy of the GNU General Public License
-*   along with Maarch Framework.  If not, see <http://www.gnu.org/licenses/>.
-*/
-
-require_once 'core/services/Abstract.php';
-
-class Core_ModulesAbstract_Service extends Core_Abstract_Service {
-	public static function getApiMethod() {
-		$aMethod = parent::getApiMethod();
-		$aMethod['getList'] = 'getList';
-		return $aMethod;
-	}
-	/**
-	 * Renvoie la liste des modules
-	 * @throw \Exception $e
-	 * @param array $args
-	 * @return array $aModules
-	 **/
-	public static function getList(array $args = []) {
-		if ( ! file_exists('modules') ) {
-			throw new \Exception('path modules not-found');
-		}
-		$aDir = scandir('modules');
-		$aModules = [];
-		foreach ($aDir as $dir) {
-			if ( '.'==$dir[0]) continue;
-			if ( !is_dir("modules/$dir") ) continue;
-			$aModules[$dir] = $dir;
-		}
-		return $aModules;
-	}
-	/**
-	 * Renvoie la liste des services
-	 * @param array $args
-	 * 	- require : inclue directement la definition du service si ce n'ai pas fait
-	 * @return array $aModules
-	 **/
-	public static function getServicesList(array $args = []) {
-		// Initialisation :
-		$aServices = [];
-		$aServices['apps'] = [];
-		// Recherche dans Apps :
-		foreach ([
-			$_SESSION['config']['corepath'].'custom'.DIRECTORY_SEPARATOR.$_SESSION['custom_override_id']."/apps/maarch_entreprise/services",
-			"apps/maarch_entreprise/services",
-			] as $sPathModuleService) {
-			if ( is_dir($sPathModuleService) ) {
-				$aDir = scandir($sPathModuleService);
-				foreach ($aDir as $dir) {
-					if ( '.'==$dir[0]) continue;
-					if ( preg_match('/svn-commit/', $dir) ) continue;
-					if ( !is_file("$sPathModuleService/$dir") ) continue;
-					$sService = preg_replace('/\.php$/', '', $dir);
-					$sService = 'Apps_'.ucfirst($sService).'_Service';
-					if ( !empty($aServices['apps'][$sService]) ) continue; // Déjà fait
-					if ( !class_exists($sService) && !empty($args['require']) ) require_once "$sPathModuleService/$dir";
-					$aServices['apps'][$sService] = $sService;
-				}
-			}
-		}
-		if ( empty($aServices['apps']) ) {
-			unset($aServices['apps']);
-		}
-		// Recherche dans Core :
-		$aServices['core'] = [];
-		foreach ([
-			$_SESSION['config']['corepath'].'custom'.DIRECTORY_SEPARATOR.$_SESSION['custom_override_id']."/core/services",
-			"core/services",
-			] as $sPathModuleService) {
-			if ( is_dir($sPathModuleService) ) {
-				$aDir = scandir($sPathModuleService);
-				foreach ($aDir as $dir) {
-					if ( '.'==$dir[0]) continue;
-					if ( preg_match('/svn-commit/', $dir) ) continue;
-					if ( !is_file("$sPathModuleService/$dir") ) continue;
-					$sService = preg_replace('/\.php$/', '', $dir);
-					$sService = 'Core_'.ucfirst($sService).'_Service';
-					if ( !empty($aServices['core'][$sService]) ) continue; // Déjà fait
-					if ( !class_exists($sService) && !empty($args['require']) ) require_once "$sPathModuleService/$dir";
-					$aServices['core'][$sService] = $sService;
-				}
-			}
-		}
-		if ( empty($aServices['core']) ) {
-			unset($aServices['core']);
-		}
-		// Recherche dans tous les modules :
-		$aModules = self::getList();
-		foreach ($aModules as $sModule) {
-			// Recherche dans maarch + custom :
-			foreach ([
-				$_SESSION['config']['corepath'].'custom'.DIRECTORY_SEPARATOR.$_SESSION['custom_override_id']."/modules/{$sModule}/services",
-				"modules/{$sModule}/services",
-				] as $sPathModuleService) {
-				if ( is_dir($sPathModuleService) ) {
-					$aDir = scandir($sPathModuleService);
-					foreach ($aDir as $dir) {
-						if ( '.'==$dir[0]) continue;
-						if ( preg_match('/svn-commit/', $dir) ) continue;
-						if ( !is_file("$sPathModuleService/$dir") ) continue;
-						$sService = preg_replace('/\.php$/', '', $dir);
-						$sService = ucfirst($sModule).'_'.ucfirst($sService).'_Service';
-						if ( !empty($aServices[$sModule][$sService]) ) continue; // Déjà fait
-						if ( !class_exists($sService) && !empty($args['require']) ) require_once "$sPathModuleService/$dir";
-						$aServices[$sModule][$sService] = $sService;
-					}
-				}
-			}
-			if ( empty($aServices[$sModule]) ) {
-				unset($aServices[$sModule]);
-			}
-		}
-		// Retour :
-		return $aServices;
-	}
-}
\ No newline at end of file
diff --git a/core/services/Rest.php b/core/services/Rest.php
deleted file mode 100644
index 44041a5a5b7bdd67d1997d44a0d71a4b3445e0a0..0000000000000000000000000000000000000000
--- a/core/services/Rest.php
+++ /dev/null
@@ -1,125 +0,0 @@
-<?php
-
-/**
-*   @copyright 2017 Maarch
-*
-*   This file is part of Maarch Framework.
-*
-*   Maarch Framework is free software: you can redistribute it and/or modify
-*   it under the terms of the GNU General Public License as published by
-*   the Free Software Foundation, either version 3 of the License, or
-*   (at your option) any later version.
-*
-*   Maarch Framework is distributed in the hope that it will be useful,
-*   but WITHOUT ANY WARRANTY; without even the implied warranty of
-*   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-*   GNU General Public License for more details.
-*
-*   You should have received a copy of the GNU General Public License
-*   along with Maarch Framework.  If not, see <http://www.gnu.org/licenses/>.
-*/
-require_once 'core/services/Logs.php';
-
-/**
- * Service des gestion des appels rest
- */
-class Core_Rest_Service {
-	/**
-	 * Constructeur
-	 */
-	public function __construct() {
-	}
-
-	/**
-	 * Encodage en json
-	 * @param  array $json Liste d'arguments
-	 *	- string status [description]
-	 *	- string result [description]
-	 *	- string errors [description]
-	 *	- string debug [description]
-	 */
-	public function json(array $json) {
-		header('Content-Type: application/json');
-		if ( !isset($json['status']) ) {
-			throw new \Exception('$oServiceRest->return([...]) : status not-isset');
-		}
-		if ( !isset($json['result']) ) {
-			throw new \Exception('$oServiceRest->return([...]) : result not-isset');
-		}
-		if ( !isset($json['errors']) ) {
-			throw new \Exception('$oServiceRest->return([...]) : error not-isset');
-		}
-		if ( empty($json['debug']) ) {
-			$json['debug'] = null;
-		}
-		if ( is_array($json['result']) ) {
-			$json['result_count'] = count($json['result']);
-		}
-		echo json_encode($json);
-    	exit;
-	}
-
-	/**
-	 * Renvoi avec succès des données encodées en json
-	 * @param  array $json Liste d'arguments
-	 *	- string status [description]
-	 *	- string result [description]
-	 *	- string errors [description]
-	 *	- string debug [description]
-	 */
-	public function returnSuccess(array $json) {
-		$this->json([
-			'status' => empty($json['status']) ? 0 : $json['status'],
-			'result' => $json['result'],
-			'errors' => [],
-			'debug'  => empty($json['debug'])? null : $json['debug'],
-		]);
-	}
-
-	/**
-	 * Renvoi avec erreur des données encodées en json
-	 * @param  array $json Liste d'arguments
-	 *	- string status [description]
-	 *	- string result [description]
-	 *	- string errors [description]
-	 *	- string debug [description]
-	 */
-	public function returnError(array $json) {
-		if ( is_string($json['errors'])) {
-			$json['errors'] = [$json['errors']];
-		}
-		$json['status'] = empty($json['status']) ? -1 : $json['status'];
-		$json['debug'] = empty($json['debug'])? null : $json['debug'];
-		Core_Logs_Service::error([
-			'message' => 'Exception : '.$json['errors'][0]."\n".$json['debug'],
-			'code'    => $json['status'],
-			'file'    => __FILE__,
-		]);
-		$this->json([
-			'status' => $json['status'],
-			'result' => false,
-			'errors' => $json['errors'],
-			'debug'  => DEBUG ? $json['debug'] : null,
-		]);
-	}
-
-	public function returnWarning(array $json) {
-		if ( is_string($json['errors'])) {
-			$json['errors'] = [$json['errors']];
-		}
-		$json['status'] = empty($json['status']) ? -1 : $json['status'];
-		$json['debug'] = empty($json['debug'])? null : $json['debug'];
-		Core_Logs_Service::warning([
-			'message' => 'Exception : '.$json['errors'][0]."\n".$json['debug'],
-			'code'    => $json['status'],
-			'file'    => __FILE__,
-		]);
-		$this->json([
-			'status' => $json['status'],
-			'result' => false,
-			'errors' => $json['errors'],
-			'debug'  => DEBUG ? $json['debug'] : null,
-		]);
-	}
-
-}
diff --git a/core/services/String.php b/core/services/String.php
deleted file mode 100644
index 54e7868b95da737657032eefde2b0c9a1499813c..0000000000000000000000000000000000000000
--- a/core/services/String.php
+++ /dev/null
@@ -1,26 +0,0 @@
-<?php
-
-/**
-*   @copyright 2016 capgemini
-*
-*   This file is part of Maarch Framework.
-*
-*   Maarch Framework is free software: you can redistribute it and/or modify
-*   it under the terms of the GNU General Public License as published by
-*   the Free Software Foundation, either version 3 of the License, or
-*   (at your option) any later version.
-*
-*   Maarch Framework is distributed in the hope that it will be useful,
-*   but WITHOUT ANY WARRANTY; without even the implied warranty of
-*   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-*   GNU General Public License for more details.
-*
-*   You should have received a copy of the GNU General Public License
-*   along with Maarch Framework.  If not, see <http://www.gnu.org/licenses/>.
-*/
-
-require_once 'core'. DIRECTORY_SEPARATOR . 'services'. DIRECTORY_SEPARATOR . 'StringAbstract.php';
-
-class Core_String_Service extends Core_StringAbstract_Service {
-	// Do your stuff
-}
diff --git a/core/services/StringAbstract.php b/core/services/StringAbstract.php
deleted file mode 100644
index 11e19b2c290365fef4015cb003fa091ef8ec085d..0000000000000000000000000000000000000000
--- a/core/services/StringAbstract.php
+++ /dev/null
@@ -1,62 +0,0 @@
-<?php
-
-/**
-*   @copyright 2016 capgemini
-*
-*   This file is part of Maarch Framework.
-*
-*   Maarch Framework is free software: you can redistribute it and/or modify
-*   it under the terms of the GNU General Public License as published by
-*   the Free Software Foundation, either version 3 of the License, or
-*   (at your option) any later version.
-*
-*   Maarch Framework is distributed in the hope that it will be useful,
-*   but WITHOUT ANY WARRANTY; without even the implied warranty of
-*   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-*   GNU General Public License for more details.
-*
-*   You should have received a copy of the GNU General Public License
-*   along with Maarch Framework.  If not, see <http://www.gnu.org/licenses/>.
-*/
-
-require_once 'core'. DIRECTORY_SEPARATOR . 'services'. DIRECTORY_SEPARATOR . 'Abstract.php';
-
-class Core_StringAbstract_Service extends Core_Abstract_Service {
-
-    /**
-    * Delete accents
-    *
-    * @param  $str (string)
-    * @param  $charset = 'utf-8' (string)
-    *
-    * @return  string $str
-    */
-    public static function wd_remove_accents(
-        $str,
-        $charset ='utf-8'
-    )
-    {
-        $str = htmlentities(
-            $str,
-            ENT_NOQUOTES,
-            "utf-8"
-        );
-        $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;
-    }
-}