diff --git a/CMakeLists.txt b/CMakeLists.txt
index 95c2206fef38c8d704bacbb54fa3ad13671a6b07..92487d179924f0ed309c739343e66eee7bd10f0b 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -1,17 +1,4 @@
 # Copyright 2010, Olivier Stasse, JRL, CNRS/AIST
-#
-# This file is part of dynamic-graph.
-# dynamic-graph is free software: you can redistribute it and/or
-# modify it under the terms of the GNU Lesser General Public License
-# as published by the Free Software Foundation, either version 3 of
-# the License, or (at your option) any later version.
-#
-# dynamic-graph 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 Lesser Public License for more details.  You should have
-# received a copy of the GNU Lesser General Public License along with
-# dynamic-graph. If not, see <http://www.gnu.org/licenses/>.
 
 CMAKE_MINIMUM_REQUIRED(VERSION 2.6)
 
@@ -19,7 +6,6 @@ INCLUDE(cmake/base.cmake)
 INCLUDE(cmake/boost.cmake)
 INCLUDE(cmake/eigen.cmake)
 INCLUDE(cmake/pthread.cmake)
-INCLUDE(cmake/cpack.cmake)
 
 SET(PROJECT_ORG stack-of-tasks)
 SET(PROJECT_NAME dynamic-graph)
@@ -42,9 +28,6 @@ GENERATE_CONFIGURATION_HEADER(
 GENERATE_CONFIGURATION_HEADER(
   ${HEADER_DIR}
   config-tracer-real-time.hh DG_TRACERREALTIME tracer_real_time_EXPORTS)
-GENERATE_CONFIGURATION_HEADER(
-  ${HEADER_DIR}
-  config-contiifstream.hh DG_CONTIIFSTREAM contiifstream_EXPORTS)
 
 # FIXME: to be changed into lib/dynamic-graph
 # to avoid name collision when installing dynamic-graph in /usr.
@@ -69,4 +52,3 @@ ADD_SUBDIRECTORY(include/${PROJECT_NAME})
 ADD_SUBDIRECTORY(tests)
 
 SETUP_PROJECT_FINALIZE()
-SETUP_PROJECT_CPACK()
diff --git a/cmake b/cmake
index a33ae51993e5bc22ae2e5cd5131f85bd2ee6c8d1..1d9aeca25e970d2d967fd5be0fb93fe961db121b 160000
--- a/cmake
+++ b/cmake
@@ -1 +1 @@
-Subproject commit a33ae51993e5bc22ae2e5cd5131f85bd2ee6c8d1
+Subproject commit 1d9aeca25e970d2d967fd5be0fb93fe961db121b
diff --git a/doc/Doxyfile.extra.in b/doc/Doxyfile.extra.in
index 9195d85ec66448b6ab7c87e8c1a69c13a76aad72..6aa319ac48d5b94db0ea62c52fd53685b76657dc 100644
--- a/doc/Doxyfile.extra.in
+++ b/doc/Doxyfile.extra.in
@@ -4,3 +4,6 @@ IMAGE_PATH             = @CMAKE_SOURCE_DIR@/doc/pictures \
                          @CMAKE_SOURCE_DIR@/doc/figures
 
 FILE_PATTERNS          = *.cc *.cpp *.h *.hh *.hxx
+
+TAGFILES	       = \
+"@CMAKE_INSTALL_PREFIX@/share/doc/dynamic-graph-python.doxytag = @CMAKE_INSTALL_PREFIX@/share/doc/dynamic-graph-python"
\ No newline at end of file
diff --git a/doc/additionalDoc/debug-doc.h b/doc/additionalDoc/debug-doc.h
new file mode 100644
index 0000000000000000000000000000000000000000..381bcf944634c38b8c01d96d32e77e475546571c
--- /dev/null
+++ b/doc/additionalDoc/debug-doc.h
@@ -0,0 +1,10 @@
+/**
+\page debug Debugging
+
+They are several ways to perform debugging in dynamic-graph depending on your needs or situation:
+- If you just need to collect informations from signals (like rosbag). You can use
+an entity called Tracer inside the graph:\subpage tracerdoc
+- programmatically in C++ with macros \subpage subp_dbg_trace
+- programmatically inside the entity in C++ using member of the entities:
+\subpage tracerrealtimedoc
+**/
diff --git a/doc/additionalDoc/debug-trace-doc.h b/doc/additionalDoc/debug-trace-doc.h
new file mode 100644
index 0000000000000000000000000000000000000000..ba906931c83331487f6f8c8bec2377ca50f9bc51
--- /dev/null
+++ b/doc/additionalDoc/debug-trace-doc.h
@@ -0,0 +1,72 @@
+/**
+\page subp_dbg_trace Debugging with macros and level
+
+\section subp_dbg_trace_intro Introduction
+The idea of this class and collection of MACROS is to specify  
+a level for a message, and record the message in a stream according to this level. 
+In addition there are mechanisms allowing that no time 
+is wasted in condition test. You can therefore let the debugging messages
+inside the code without impact on performances.
+
+\section subp_dbg_trace_set_on_macros Setting up dgDEBUG macros
+
+To allow message display the entity must be compiled with the macro
+\code
+#define VP_DEBUG 1
+\endcode
+Commenting or removing this macro disable all the messages specified
+by the following macros.
+
+The level up to which the messages are accepted for display is
+specified by:
+\code
+#define VP_DEBUG_MODE 50
+\endcode
+
+In the constructor of the entity, the file where all the messages
+are written is specified by:
+\code
+  dynamicgraph::dgDEBUGFLOW.openFile("/tmp/dynamic-graph-traces.txt");
+\endcode
+
+\section subp_dbg_trace_using_macros Using dgDEBUG macros
+
+To print that the beginning of a method is being executed use the following macros:
+\code
+    dgDEBUGIN(5);
+\endcode
+5 here specifies the minimum level that you be specified by VP_DEBUG_MODE for this message
+to be displayed.
+
+It will generate the following output:
+\code
+/path_to/dynamic-graph/tests/debug-trace.cpp: testDebugTrace(#46) :# In {
+\endcode
+The output displays the name of the source file, the name of the method, 
+the line where is the macro, and the message itself.
+
+When going out of the method:
+\code
+    dgDEBUGOUT(5);
+\endcode
+
+This generates the following output:
+\code
+/path_to/dynamic-graph/tests/debug-trace.cpp: testDebugTrace(#54) :# Out }
+\endcode
+
+A message inside the code is written through:
+\code
+      dgDEBUG(5) << "Here is a test" << std::endl;
+\endcode
+
+This generates the following output:
+\code
+/path_to/dynamic-graph/tests/debug-trace.cpp: testDebugTrace(#52) :Here is a test
+\endcode
+
+\section subp_dbg_trace_wrk_exp Working example
+
+A full working example is given here:
+\include ../tests/debug-trace.cpp
+ */
diff --git a/doc/additionalDoc/entity.h b/doc/additionalDoc/entity.h
new file mode 100644
index 0000000000000000000000000000000000000000..585dba6f91df87a8adb24735e82423536563c530
--- /dev/null
+++ b/doc/additionalDoc/entity.h
@@ -0,0 +1,50 @@
+/**
+\page subpage_entities Entities
+
+\section section_entities Entities
+\subsection entity_definition General definition
+\image html entity.png
+
+Despite the fact that it looks very similar to a ROS node or a CORBA/OpenRTM server, an entity is simply a C++ object.
+The main idea is that this entity is providing mostly a data-driven functionnality working at very high rate (\f$ 200 Hz\f$ or \f$ 1 kHz \f$)
+and should have a minimal computational time foot-print.
+
+For this \subpage subp_signals (or ports to use a more classical terminology) are providing a time dependency between data.
+To implement this, an output signal is linked with a method of the entity. The method calls input signals or use other means
+to get the needed data.
+It might be provided by the connection with remote computers through a middleware, or specific protocols,
+but in general the external data is based upon the sensor values provided by a "Device" entity.
+For this reason the signal evaluations are realized through the cascade of dependencies and start from the evaluation of an input
+signal of a periodic node (in general the device). This is realized inside a \b real-time thread.
+
+To add flexibility to a node, it is possible to add command with arguments to modify the internal behavior of the entity
+or get information from the entity.
+As a command is in general asynchronous and rare with respect to the data-flow scheme for the signals the command is in general
+executed in a \b none-real-time thread.
+
+\subsection entity_classes Entity class
+Entities are implemented as C++ classes and compiled as dynamic libraries. They can be loaded and instancied dynamically.
+It is therefore necessary to specify the location of their dynamical libraries.
+However given the time it might take to load the library, it is not advised to do that during a control-law computation.
+Entity instanciation also implies memory allocation which is also time consuming and thus not advised inside a real-time thread.
+
+The entities will be placed in ${PREFIX}/lib/plugin (since this may change, it is advised to
+check the install log or the CMakeLists.txt file to check the installation path).
+
+\subsection entities List of entities in this package
+Since most of the functionality in projects using the dynamic-graph framework
+is exposed from entities, here is a short description of all the entities contained in
+this package. Note that most entities are contained in a binary file that closely matches
+the entities' names in the scripts; loading this file with the plugin loader will
+enable creation of this entity through the factory.
+\li \ref tracerdoc
+\li \ref tracerrealtimedoc
+
+\subsection specific_semantics Specific semantics with entities
+
+It is possible to derive classes and apply specific semantic for the entities. In our case we are interested in specific control semantics:
+\li Tasks (more information <a href="http://stack-of-tasks.github.io/sot-core/doxygen/HEAD/a00089.html">here</a>)
+\li Features (more information <a href="http://stack-of-tasks.github.io/sot-core/doxygen/HEAD/a00030.html">here</a>)
+\li Solver (more information <a href="http://stack-of-tasks.github.io/sot-core/doxygen/HEAD/a00078.html">here</a>)
+
+*/
diff --git a/doc/additionalDoc/extension.h b/doc/additionalDoc/extension.h
new file mode 100644
index 0000000000000000000000000000000000000000..d3f9412735ba20ae97bbc2d63c1976f50286d695
--- /dev/null
+++ b/doc/additionalDoc/extension.h
@@ -0,0 +1,38 @@
+/**
+\page subp_how_to_use Using this package
+
+\section usecase How to use this package
+
+\subsection use_programmatically General introduction
+Objects, which are derived from Entities (base class dynamicgraph::Entity), can be
+declared within the code and compiled to shared libraries (.so/.dll files).
+These libraries can be loaded at run-time using the PluginLoader methods,
+and at the same time register their class names to the Factory (see the
+examples in the <a href="http://projects.laas.fr/gepetto/doc/stack-of-tasks/sot-core/master/doxygen-html">sot-core documentation</a> 
+for advanced control examples).
+
+The Factory can then create instances of these objects and subsequently
+register them in the Pool, where they can be listed, accessed, and acted upon
+(see PoolStorage documentation). Basic commands defined by entities include
+signal connection graph file generation, help and name print, and signals.
+This is usually done through a scripting language such as python (see
+<a hef="https://github.com/stack-of-tasks/dynamic-graph-python">dynamic-graph-python</a>)
+
+The singletons made available by including the corresponding headers in this
+module are:
+\li dynamicgraph::FactoryStorage
+\li dynamicgraph::PoolStorage
+
+For an example of a program creating entities in C++, see the unit test
+test_pool.cpp (in your package source directory/tests).
+
+\subsection Tutorial
+A tutorial is available <a href="http://stack-of-tasks.github.io/dynamic-graph-tutorial/">here</a>
+
+\section sec_htw_helpers Helpers
+
+When writing entities you might use some macros which are very useful to write your class.
+They are given also in the <a href="http://projects.laas.fr/gepetto/doc/stack-of-tasks/sot-core/master/doxygen-html">sot-core</a> package as well.
+
+
+*/
diff --git a/doc/additionalDoc/factory.h b/doc/additionalDoc/factory.h
new file mode 100644
index 0000000000000000000000000000000000000000..07a1941b8cc927f89edc27edbcfc22577bf12239
--- /dev/null
+++ b/doc/additionalDoc/factory.h
@@ -0,0 +1,6 @@
+/**
+\page subp_factory Factory
+\section sec_factory Factory
+
+The class \ref dynamicgraph::FactoryStorage is a singleton which register the entity classes and which is allowing the instancation of such classes.
+*/
diff --git a/doc/additionalDoc/graph.h b/doc/additionalDoc/graph.h
new file mode 100644
index 0000000000000000000000000000000000000000..cf567dc8f8525d143e58623a279a3a3f3913a41f
--- /dev/null
+++ b/doc/additionalDoc/graph.h
@@ -0,0 +1,20 @@
+/**
+\page p_graph Graph
+
+
+In this package, the graph considered are directed graphs.
+
+In dynamic-graph a graph is build with:
+- computational nodes which are entities \subpage subpage_entities.
+- directed edges which are created by connecting input and output signals \subpage subp_signals.
+- managing the nodes is done through a factory \subpage subp_factory providing classes and a way to create instances from this list of classes.
+- the instances of node are handled through a pool \subpage subp_pool
+
+We strongly recommend to use a scripting language such as Python to 
+manage the graph.
+See <c>dynamic-graph-python</c> for more information on binding dynamic-graph with Python.
+
+It is possible to display the graph of entities \subpage writegraphdoc
+
+
+*/
diff --git a/doc/additionalDoc/installation.h b/doc/additionalDoc/installation.h
new file mode 100644
index 0000000000000000000000000000000000000000..e0e14605b369c7039885fa9f272b39751dd0c8dc
--- /dev/null
+++ b/doc/additionalDoc/installation.h
@@ -0,0 +1,35 @@
+/**
+\page subp_installation Installation
+
+\section sec_inst_dep Dependencies
+
+dynamic-graph depends on:
+<ul>
+<li> boost </li>
+<li> eigen </li>
+<li> cmake </li>
+</ul>
+
+\section sec_inst_get_src Getting the source
+
+The sources are available through github at the following URL:
+<a href="https://github.com/stack-of-tasks/dynamic-graph">https://github.com/stack-of-tasks/dynamic-graph</a>
+
+To clone:
+\code
+git clone https://github.com/stack-of-tasks/dynamic-graph.git
+\endcode
+
+
+\section sec_inst_comp Compiling
+
+\code
+cd dynamic-graph
+mkdir _build
+cd _build
+cmake .. -DCMAKE_BUILD_TYPE=RELEASE
+make
+\endcode
+
+
+*/
diff --git a/doc/additionalDoc/introduction.h b/doc/additionalDoc/introduction.h
new file mode 100644
index 0000000000000000000000000000000000000000..c24ac33aebb46581eae5bfd359dbe2af47587357
--- /dev/null
+++ b/doc/additionalDoc/introduction.h
@@ -0,0 +1,65 @@
+/**
+\page subp_concept_intro General introduction
+\section intro_dynamicGraph Introduction
+
+The dynamic-graph package is used to connect computation nodes, "entities"
+together using a graph system, akin to what Simulink does. Entities are connected
+through input and output signals.
+With the building blocks this package provides, you can easily create a full computation graph
+for a given problem. It is the basis for the stack of tasks operation.
+
+
+\subsection controlgraph Exemple: Real-time control
+
+<p>To give a more concrete example, the real-time control used by the Gepetto group for the humanoid robot HRP-2
+is detailled.</p>
+<p>
+Real-time control system are usually driven by a cyclic computational node which
+needs to send a control reference value to each motors of a robot. To compute this
+control reference values, sensor values need to be provided.
+In the Stack-Of-Tasks special entities called Device are used to
+provide an abstract interface to the hardware.</p>
+A scheme of the real-time control graph used for the humanoid robot HRP-2 is depicted in the following figure:
+
+\image html Concept-Software-Fig.png
+
+You can find an example of a real example of control graph at \ref writegraphdoc.
+
+<p>The device therefore has a specific input which should contain the control vector.
+This control vector is the result of a computation solving a control problem.
+The entity in charge of solving this control problem is called "Solver" in the previous
+figure.
+In the SoT framework it is often cast as an optimization problem.
+This optimization problem is build using a control "Task" (not to be confused with the
+general word task). A control "Task" regulates the difference with a "Feature" computed
+on the current robot state and a "Desired Feature". For instance when walking, the regulated
+feature is the robot's Center-Of-Mass (CoM) position. The "Feature" is computed using a
+library using the robot model and the sensor value. The entity making this computation is "Dyn".
+A walking pattern generator using foot-steps position given in advance generates the desired
+value for the CoM.
+Note that the "Dyn" entity uses the sensor provided by the entity "Robot". </p>
+
+<p>
+From a pure computer science viewpoint we wish to avoid recomputing data such as articular Jacobians
+when this is unnecessary. Therefore the data generated by an entity through signals may have two types of
+dependencies: one dependency related to time and dependencies on other signals. Internally an entity
+does not recompute the data if no new information is available, it is simply providing the same information
+computed before. Please note that this package provides only the computational framework to realize
+the data dependency and the entities. Solvers, libraries to compute mechanical quantities are provided
+in different packages.
+</p>
+
+<p>
+Finally in order to dynamically create a graph, it is possible \b on-line to load classes of entities  and
+create instances of entities.</p>
+
+\subsection Functionnalities
+
+\li Support for extensions and modules using dynamic link libraries
+\li Template-based signal definition, independent
+\li Type-safe connection of input and output signals
+\li On-demand signal computation as well as a caching system for signal values allow fast
+computation of signal values, which is a critical point for real-time systems\n
+See \ref scriptingabout
+
+*/
diff --git a/doc/additionalDoc/package.h b/doc/additionalDoc/package.h
index e169f7709f0e1135010fa57842194710d5cecb47..76dd15c696d752952b878f04da695b3cc7cd4208 100644
--- a/doc/additionalDoc/package.h
+++ b/doc/additionalDoc/package.h
@@ -6,190 +6,28 @@
  *
  * CNRS/AIST
  *
- * This file is part of dynamic-graph.
- * dynamic-graph is free software: you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public License
- * as published by the Free Software Foundation, either version 3 of
- * the License, or (at your option) any later version.
- * dynamic-graph 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 Lesser General Public License for more details.  You should
- * have received a copy of the GNU Lesser General Public License along
- * with dynamic-graph.  If not, see <http://www.gnu.org/licenses/>.
  */
 
 /**
 \mainpage
 
+The dynamic-graph aims at building computational graphs for real-time control.
+It provides the basic software functionnalities.
 
+A more detailed introduction is available at \subpage subp_concept_intro.
 
-\section intro_dynamicGraph Introduction
-
-The dynamic-graph package is used to connect computation nodes, "entities"
-together using a graph system, akin to what Simulink does. Entities are connected
-through input and output signals.
-With the building blocks this package provides, you can easily create a full computation graph
-for a given problem. It is the basis for the stack of tasks operation.
-
-
-\subsection controlgraph Exemple: Real-time control
-
-<p>To give a more concrete example, the real-time control used by the Gepetto group for the humanoid robot HRP-2
-is detailled.</p>
-<p>
-Real-time control system are usually driven by a cyclic computational node which
-needs to send a control reference value to each motors of a robot. To compute this
-control reference values, sensor values need to be provided.
-In the Stack-Of-Tasks special entities called Device are used to
-provide an abstract interface to the hardware.</p>
-A scheme of the real-time control graph used for the humanoid robot HRP-2 is depicted in the following figure:
-
-\image html Concept-Software-Fig.png
-
-<p>The device therefore has a specific input which should contain the control vector.
-This control vector is the result of a computation solving a control problem.
-The entity in charge of solving this control problem is called "Solver" in the previous
-figure.
-In the SoT framework it is often cast as an optimization problem.
-This optimization problem is build using a control "Task" (not to be confused with the
-general word task). A control "Task" regulates the difference with a "Feature" computed
-on the current robot state and a "Desired Feature". For instance when walking, the regulated
-feature is the robot's Center-Of-Mass (CoM) position. The "Feature" is computed using a
-library using the robot model and the sensor value. The entity making this computation is "Dyn".
-A walking pattern generator using foot-steps position given in advance generates the desired
-value for the CoM.
-Note that the "Dyn" entity uses the sensor provided by the entity "Robot". </p>
-
-<p>
-From a pure computer science viewpoint we wish to avoid recomputing data such as articular Jacobians
-when this is unnecessary. Therefore the data generated by an entity through signals may have two types of
-dependencies: one dependency related to time and dependencies on other signals. Internally an entity
-does not recompute the data if no new information is available, it is simply providing the same information
-computed before. Please note that this package provides only the computational framework to realize
-the data dependency and the entities. Solvers, libraries to compute mechanical quantities are provided
-in different packages.
-</p>
-
-<p>
-Finally in order to dynamically create a graph, it is possible \b on-line to load classes of entities  and
-create instances of entities.</p>
-
-\subsection Functionnalities
-
-\li Support for extensions and modules using dynamic link libraries
-\li Template-based signal definition, independent
-\li Type-safe connection of input and output signals
-\li On-demand signal computation as well as a caching system for signal values allow fast
-computation of signal values, which is a critical point for real-time systems\n
-See \ref scriptingabout
-
-\section entity Computational Entity
-\image html entity.png
-
-\subsection entity_definition General definition
-Despite the fact that it looks very similar to a ROS node or a CORBA/OpenRTM server, an entity is simply a C++ object.
-The main idea is that this entity is providing mostly a data-driven functionnality working at very high rate (\f$ 200 Hz\f$ or \f$ 1 kHz \f$)
-and should have a minimal computational time foot-print.
-
-For this signals (or ports to use a more classical terminology) are providing a time dependency between data.
-To implement this, an output signal is linked with a method of the entity. The method calls input signals or use other means
-to get the needed data.
-It might be provided by the connection with remote computers through a middleware, or specific protocols,
-but in general the external data is based upon the sensor values provided by a "Device" entity.
-For this reason the signal evaluations are realized through the cascade of dependencies and start from the evaluation of an input
-signal of a periodic node (in general the device). This is realized inside a \b real-time thread.
-
-To add flexibility to a node, it is possible to add command with arguments to modify the internal behavior of the entity
-or get information from the entity.
-As a command is in general asynchronous and rare with respect to the data-flow scheme for the signals the command is in general
-executed in a \b none-real-time thread.
-
-\subsection entity_classes Entity class
-Entities are implemented as C++ classes and compiled as dynamic libraries. They can be loaded and instancied dynamically.
-It is therefore necessary to specify the location of their dynamical libraries.
-However given the time it might take to load the library, it is not advised to do that during a control-law computation.
-Entity instanciation also implies memory allocation which is also time consuming and thus not advised inside a real-time thread.
-
-The entities will be placed in ${PREFIX}/lib/plugin (since this may change, it is advised to
-check the install log or the CMakeLists.txt file to check the installation path).
-
-\subsection entities List of entities in this package
-Since most of the functionality in projects using the dynamic-graph framework
-is exposed from entities, here is a short description of all the entities contained in
-this package. Note that most entities are contained in a binary file that closely matches
-the entities' names in the scripts; loading this file with the plugin loader will
-enable creation of this entity through the factory.
-\li \ref tracerdoc
-\li \ref tracerrealtimedoc
-
-\subsection specific_semantics Specific semantics with entities
-
-It is possible to derive classes and apply specific semantic for the entities. In our case we are interested in specific control semantics:
-\li Tasks (more information <a href="http://stack-of-tasks.github.io/sot-core/doxygen/HEAD/a00089.html">here</a>)
-\li Features (more information <a href="http://stack-of-tasks.github.io/sot-core/doxygen/HEAD/a00030.html">here</a>)
-\li Solver (more information <a href="http://stack-of-tasks.github.io/sot-core/doxygen/HEAD/a00078.html">here</a>)
-
-\section sigintro Signals
-
-Entities can output different types of signals. All signals are templated by a Time
-tick type parameter (which is used in the caching of signals) - usually \c int. Signals
-are also templated after the type of data they accept or provide. For example:
-(example)
-For a more detailed programmer-oriented description of signals, please see \ref signals
-
-\section graph Graph
-
-In this package, the graph considered are directed graphs.
-
-\subsection factory Factory
-
-The class \ref dynamicgraph::FactoryStorage is a singleton which register the entity classes and which is allowing the instancation of such classes.
-
-\subsection pool Pool
-The class \ref dynamicgraph::PoolStorage keeps track of the entities instanciated with the factory.
-The entities are the graph nodes. Signals are constructed during the class instanciation, they do not live independently
-from the entities. Signals are the directed edges of the graph.
-The pool can write a file representing the graph of entities.
-
-\section usecase How to use this package
-\subsection use_programmtically Programmatically
-Objects, which are derived from Entities (base class dynamicgraph::Entity), can be
-declared within the code and compiled to shared libraries (.so/.dll files).
-These libraries can be loaded at run-time using the PluginLoader methods,
-and at the same time register their class names to the Factory (see the
-examples in the SOT documentation to learn how).
-
-The Factory can then create instances of these objects and subsequently
-register them in the Pool, where they can be listed, accessed, and acted upon
-(see PoolStorage documentation). Basic commands defined by entities include
-signal connection graph file generation, help and name print, and signals.
-
-The singletons made available by including the corresponding headers in this
-module are:
-\li dynamicgraph::FactoryStorage
-\li dynamicgraph::PoolStorage
-
-For an example of a program creating entities in C++, see the unit test
-test_pool.cpp (in your package source directory/unitTesting).
-
-\subsection Tutorial
-A tutorial is available <a href="http://stack-of-tasks.github.io/dynamic-graph-tutorial/">here</a>
-\section references References
-\anchor Mansard2009
-
-<b> "A versatile Generalized Inverted Kinematics implementation for collaborative working humanoid robots: The Stack Of Tasks"</b>,
-<em>N. Mansard, O. Stasse, P. Evrard, A. Kheddar,</em>
-Int. Conf. on Autonomous Robots, ICAR, 2009
-
-\anchor Mansard2007
-
-<b>"Task sequencing for sensor-based control"</b>,
-<em>N. Mansard, F. Chaumette,</em>
-IEEE Trans. on Robotics, 23(1):60-72, February 2007
+The installation instruction are given at \subpage subp_installation.
+
+The software graph structure is detailled in \subpage p_graph
+
+For debugging your entities detailed instructions are given in \subpage debug
+
+For citing the software in your research work please refer to \subpage subp_references
 
 \namespace dynamicgraph This is the namespace where every object and class of this library is located.
 
+\defgroup debug Debugging
+
 \defgroup dgraph Core classes and objects
 @{
 
diff --git a/doc/additionalDoc/pool.h b/doc/additionalDoc/pool.h
new file mode 100644
index 0000000000000000000000000000000000000000..73092eb5fa14636e9e38b200ee8cb172bdffa100
--- /dev/null
+++ b/doc/additionalDoc/pool.h
@@ -0,0 +1,8 @@
+/**
+\page subp_pool Pool
+\section pool Pool
+The class \ref dynamicgraph::PoolStorage keeps track of the entities instanciated with the factory.
+The entities are the graph nodes. Signals are constructed during the class instanciation, they do not live independently
+from the entities. Signals are the directed edges of the graph.
+The pool can write a file representing the graph of entities.
+*/
diff --git a/doc/additionalDoc/references.h b/doc/additionalDoc/references.h
new file mode 100644
index 0000000000000000000000000000000000000000..e360c2a787721f46e09ec4f68698ba7b116bb065
--- /dev/null
+++ b/doc/additionalDoc/references.h
@@ -0,0 +1,21 @@
+/** 
+\page subp_references References
+
+\section sec_refer References
+Please when referencing the Stack-Of-Tasks use the following reference:
+
+\anchor Mansard2009
+
+<b> <a href="https://hal-lirmm.ccsd.cnrs.fr/lirmm-00796736/document">
+"A versatile Generalized Inverted Kinematics implementation for collaborative working humanoid robots: The Stack Of Tasks"</a>
+</b>,
+<em>N. Mansard, O. Stasse, P. Evrard, A. Kheddar,</em>
+Int. Conf. on Autonomous Robots, ICAR, 2009
+
+\anchor Mansard2007
+
+<b>"Task sequencing for sensor-based control"</b>,
+<em>N. Mansard, F. Chaumette,</em>
+IEEE Trans. on Robotics, 23(1):60-72, February 2007
+
+*/
diff --git a/doc/additionalDoc/signal.h b/doc/additionalDoc/signal.h
new file mode 100644
index 0000000000000000000000000000000000000000..69f5a24a52509a7a5103e3cfa75299e483c70ac0
--- /dev/null
+++ b/doc/additionalDoc/signal.h
@@ -0,0 +1,12 @@
+/**
+\page subp_signals Signals
+\section sec_sigintro Signals
+
+Entities can output different types of signals. To guarante real-time perforamces, signals are implemented
+using C++ and mecanism which have a low time foot-print.
+All signals are templated by a Time
+tick type parameter (which is used in the caching of signals) - usually \c int. Signals
+are also templated after the type of data they accept or provide. For example:
+(example)
+For a more detailed programmer-oriented description of signals, please see \ref signals
+*/
diff --git a/doc/additionalDoc/tracer-real-timedoc.h b/doc/additionalDoc/tracer-real-timedoc.h
index 0f45826e271a6b4f61832b312dc4d494a73d2790..7a9cf1b2fdaa2be814d997653ac61f753303d526 100644
--- a/doc/additionalDoc/tracer-real-timedoc.h
+++ b/doc/additionalDoc/tracer-real-timedoc.h
@@ -1,10 +1,12 @@
 /**
 \page tracerrealtimedoc TracerRealTime
-\section description Description
+
+\section tracerrealtimedoc_description Description
 The \b TracerRealTime entity monitors a set of signals with real-time constraints; its
 function is very similar to the Tracer, except that all traces are recorded to a
 memory buffer, which can be emptied at any time.
-\section commands Commands
+
+\section tracerrealtimedoc_commands Commands
 The \b commands that this entity exposes are:
 \code
 empty (discards all buffers)
@@ -16,13 +18,12 @@ Plus all the commands exposed by \ref tracerdoc
 For more information on the signals exposed by this entity, please check the
 code documentation of the dynamicgraph::Tracer class.
 
-\section sample Sample usage
+\section tracerrealtimedoc_sample Sample usage
 See \ref tracerdoc for a code sample of using TracerRealTime.
 
-\section addi Additional information
+\section tracerrealtimedoc_addi Additional information
 See doxygen documentation for the class dynamicgraph::TracerRealTime
 
-\section generates Generated plugin file
+\section tracerrealtimedoc_generates Generated plugin file
 tracer-real-time.dll or tracer-real-time.so.
-
-**/
+*/
diff --git a/doc/additionalDoc/tracerdoc.h b/doc/additionalDoc/tracerdoc.h
index 4df3c3ca02ca0dbb4805dcdfedaac948b90a9499..15e0e9b3d1e494c436e9c1c9a3c8597ea0745981 100644
--- a/doc/additionalDoc/tracerdoc.h
+++ b/doc/additionalDoc/tracerdoc.h
@@ -1,11 +1,12 @@
 /**
 \page tracerdoc Tracer
-\section description Description
+\section tracerdoc_description Description
 The \b Tracer entity monitors a set of signals. With an input change on the entity's [trigger] signal,
 the tracked signal values are recorded and traced to a file. The behavior of the trace-to-file
 function can be changed, from printing to a file immediately after recording, to printing out
 only when asked explicitly.
-\section commands Commands
+
+\section tracerdoc_commands Commands
 The \b commands that this entity exposes are:
 \code
 open, close (a file);
@@ -19,7 +20,8 @@ start, stop (traces)
 For more information on the signals exposed by this entity, please check the
 code documentation of the dynamicgraph::Tracer class.
 \n\n
-\section sample Sample usage
+
+\section tracerdoc_sample Sample usage
 The following code creates a TracerRealTime entity, then sets the tracing buffer
 size to 10MB. It then tells the tracer to create files with names of the form:
 jl_XXX.dat where XXX is the signal name, and adds a few signals after
@@ -38,10 +40,9 @@ tr.add dyn.0
 tr.add jgain.gain
 \endcode
 
-\section addi Additional information
+\section tracerdoc_addi Additional information
 See doxygen documentation for the class dynamicgraph::Tracer
 
-\section generates Generated plugin file
+\section tracerdoc_generates Generated plugin file
 tracer.dll or tracer.so.
-
-**/
+*/
diff --git a/doc/additionalDoc/writeGraph.h b/doc/additionalDoc/writeGraph.h
new file mode 100644
index 0000000000000000000000000000000000000000..755e46b5e465fdbab191cf0e4a8469cfe0a58cef
--- /dev/null
+++ b/doc/additionalDoc/writeGraph.h
@@ -0,0 +1,22 @@
+/**
+\page writegraphdoc Displaying the graph of entities
+\section description Description
+It is possible to view the graph of entities currently instanciated.
+The format used by dynamic-graph is dot.
+Using the python interpreter the following command
+\code
+from dynamic_graph import *
+writeGraph('/tmp/my_dynamic_graph.dot')
+\endcode
+is writing the <b>my_dynamic_graph.dot</b> in the <b>/tmp</b> directory
+
+\section fromdottopdf Viewing as a PDF file
+To view the dot file you can simply use:
+\code
+dot -Tpdf /tmp/my_dynamic_graph.dot > /tmp/my_dynamic_graph.pdf
+\endcode
+
+It provides the following output:
+\image html my_dynamic_graph.png
+
+*/
diff --git a/doc/pictures/my_dynamic_graph.png b/doc/pictures/my_dynamic_graph.png
new file mode 100644
index 0000000000000000000000000000000000000000..1cbe5a06b7be7377f6fafd885ee5ceb08f2c616e
Binary files /dev/null and b/doc/pictures/my_dynamic_graph.png differ
diff --git a/include/dynamic-graph/CMakeLists.txt b/include/dynamic-graph/CMakeLists.txt
index a8a7ae5ea8468acc416cb2d28ddcfc321b0ceae2..820ce9724efbf5e0505eaea75c13fd48be1e920d 100644
--- a/include/dynamic-graph/CMakeLists.txt
+++ b/include/dynamic-graph/CMakeLists.txt
@@ -1,7 +1,6 @@
 SET(${PROJECT_NAME}_HEADERS
   fwd.hh
   null-ptr.hh
-  contiifstream.h
   debug.h
   real-time-logger.h
 
@@ -47,7 +46,9 @@ SET(${PROJECT_NAME}_HEADERS
   command-direct-setter.h
   command-bind.h
   all-commands.h
-  )
+
+  logger.h
+    )
 
 INSTALL(FILES ${${PROJECT_NAME}_HEADERS}
   DESTINATION include/${PROJECT_NAME}
diff --git a/include/dynamic-graph/all-commands.h b/include/dynamic-graph/all-commands.h
index 8d537244c2fc5d565c3de43d9ca128b16f19303c..2ace540008be9da1293b7ef8b8e36f52f357075a 100644
--- a/include/dynamic-graph/all-commands.h
+++ b/include/dynamic-graph/all-commands.h
@@ -2,18 +2,6 @@
 // Copyright 2010, François Bleibel, Olivier Stasse, JRL, CNRS/AIST
 //                 Thomas Moulard, Nicolas Mansard  LAAS-CNRS
 //
-// This file is part of dynamic-graph.
-// dynamic-graph is free software: you can redistribute it and/or
-// modify it under the terms of the GNU Lesser General Public License
-// as published by the Free Software Foundation, either version 3 of
-// the License, or (at your option) any later version.
-//
-// dynamic-graph 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 Lesser Public License for more details.  You should have
-// received a copy of the GNU Lesser General Public License along with
-// dynamic-graph. If not, see <http://www.gnu.org/licenses/>.
 
 #ifndef DYNAMIC_GRAPH_ALL_COMMANDS_H
 # define DYNAMIC_GRAPH_ALL_COMMANDS_H
diff --git a/include/dynamic-graph/all-signals.h b/include/dynamic-graph/all-signals.h
index 33ba7c2cad36255f36c91b364ce9f1b301575a78..82b9957a53a220ff65295ee45f477df851f8851c 100644
--- a/include/dynamic-graph/all-signals.h
+++ b/include/dynamic-graph/all-signals.h
@@ -2,18 +2,6 @@
 // Copyright 2010, François Bleibel, Thomas Moulard, Olivier Stasse,
 // JRL, CNRS/AIST.
 //
-// This file is part of dynamic-graph.
-// dynamic-graph is free software: you can redistribute it and/or
-// modify it under the terms of the GNU Lesser General Public License
-// as published by the Free Software Foundation, either version 3 of
-// the License, or (at your option) any later version.
-//
-// dynamic-graph 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 Lesser Public License for more details.  You should have
-// received a copy of the GNU Lesser General Public License along with
-// dynamic-graph. If not, see <http://www.gnu.org/licenses/>.
 
 #ifndef DYNAMIC_GRAPH_ALL_SIGNALS_H
 # define DYNAMIC_GRAPH_ALL_SIGNALS_H
diff --git a/include/dynamic-graph/command-bind.h b/include/dynamic-graph/command-bind.h
index ab39f6d0dc0d2c6c66ff5a95b80aba4919ee7edc..064e7481a15fb7e437e32fc97b150088775682a0 100644
--- a/include/dynamic-graph/command-bind.h
+++ b/include/dynamic-graph/command-bind.h
@@ -3,17 +3,6 @@
 //
 // Author: Nicolas Mansard
 //
-// This file is part of dynamic-graph.
-// dynamic-graph is free software: you can redistribute it and/or
-// modify it under the terms of the GNU Lesser General Public License
-// as published by the Free Software Foundation, either version 3 of
-// the License, or (at your option) any later version.
-// dynamic-graph 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 Lesser General Public License for more details.  You should
-// have received a copy of the GNU Lesser General Public License along
-// with dynamic-graph.  If not, see <http://www.gnu.org/licenses/>.
 
 #ifndef __dg_command_bind_h__
 #define __dg_command_bind_h__
diff --git a/include/dynamic-graph/command-direct-getter.h b/include/dynamic-graph/command-direct-getter.h
index 7f3da90ea2282f1348e00d310556c98eb5eb5401..5424c2c4c13759d7b00943e204813558d5d3fe8e 100644
--- a/include/dynamic-graph/command-direct-getter.h
+++ b/include/dynamic-graph/command-direct-getter.h
@@ -3,17 +3,6 @@
 //
 // Author: Nicolas Mansard
 //
-// This file is part of dynamic-graph.
-// dynamic-graph is free software: you can redistribute it and/or
-// modify it under the terms of the GNU Lesser General Public License
-// as published by the Free Software Foundation, either version 3 of
-// the License, or (at your option) any later version.
-// dynamic-graph 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 Lesser General Public License for more details.  You should
-// have received a copy of the GNU Lesser General Public License along
-// with dynamic-graph.  If not, see <http://www.gnu.org/licenses/>.
 
 #ifndef __dg_command_direct_getter_h__
 #define __dg_command_direct_getter_h__
diff --git a/include/dynamic-graph/command-direct-setter.h b/include/dynamic-graph/command-direct-setter.h
index 2457975a74dd620236de2acd985f203c0ad2de78..dc8b9f466bb95032a17f67d29c98c5699e883b69 100644
--- a/include/dynamic-graph/command-direct-setter.h
+++ b/include/dynamic-graph/command-direct-setter.h
@@ -3,17 +3,6 @@
 //
 // Author: Nicolas Mansard
 //
-// This file is part of dynamic-graph.
-// dynamic-graph is free software: you can redistribute it and/or
-// modify it under the terms of the GNU Lesser General Public License
-// as published by the Free Software Foundation, either version 3 of
-// the License, or (at your option) any later version.
-// dynamic-graph 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 Lesser General Public License for more details.  You should
-// have received a copy of the GNU Lesser General Public License along
-// with dynamic-graph.  If not, see <http://www.gnu.org/licenses/>.
 
 #ifndef __dg_command_direct_setter_h__
 #define __dg_command_direct_setter_h__
diff --git a/include/dynamic-graph/command-getter.h b/include/dynamic-graph/command-getter.h
index 731c9dd674bed95342b9f752e031ed4f2f2f11e7..431972169091e24a6c6a499fc061cf03a405ac44 100644
--- a/include/dynamic-graph/command-getter.h
+++ b/include/dynamic-graph/command-getter.h
@@ -3,17 +3,6 @@
 //
 // Author: Florent Lamiraux
 //
-// This file is part of dynamic-graph.
-// dynamic-graph is free software: you can redistribute it and/or
-// modify it under the terms of the GNU Lesser General Public License
-// as published by the Free Software Foundation, either version 3 of
-// the License, or (at your option) any later version.
-// dynamic-graph 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 Lesser General Public License for more details.  You should
-// have received a copy of the GNU Lesser General Public License along
-// with dynamic-graph.  If not, see <http://www.gnu.org/licenses/>.
 
 #ifndef DYNAMIC_GRAPH_COMMAND_GETTER_H
 #define DYNAMIC_GRAPH_COMMAND_GETTER_H
@@ -72,4 +61,3 @@ namespace dynamicgraph {
 
 #include "dynamic-graph/command-getter.t.cpp"
 #endif //DYNAMIC_GRAPH_COMMAND_GETTER_H
-
diff --git a/include/dynamic-graph/command-getter.t.cpp b/include/dynamic-graph/command-getter.t.cpp
index 63e06bdf01e700e0a31952eb2a5d0508576e570d..032d1c018cbac16c27133255ebbd9900c96eaee1 100644
--- a/include/dynamic-graph/command-getter.t.cpp
+++ b/include/dynamic-graph/command-getter.t.cpp
@@ -3,17 +3,6 @@
 //
 // Author: Florent Lamiraux
 //
-// This file is part of dynamic-graph.
-// dynamic-graph is free software: you can redistribute it and/or
-// modify it under the terms of the GNU Lesser General Public License
-// as published by the Free Software Foundation, either version 3 of
-// the License, or (at your option) any later version.
-// dynamic-graph 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 Lesser General Public License for more details.  You should
-// have received a copy of the GNU Lesser General Public License along
-// with dynamic-graph.  If not, see <http://www.gnu.org/licenses/>.
 
 #ifndef DYNAMIC_GRAPH_COMMAND_GETTER_T_CPP
 #define DYNAMIC_GRAPH_COMMAND_GETTER_T_CPP
diff --git a/include/dynamic-graph/command-setter.h b/include/dynamic-graph/command-setter.h
index 45cc9dc98d9f2123254b9ae376f2dba88fabf0ed..4ebfaaf0ff383d30095c5c6813030e7eae86dfc0 100644
--- a/include/dynamic-graph/command-setter.h
+++ b/include/dynamic-graph/command-setter.h
@@ -3,17 +3,6 @@
 //
 // Author: Florent Lamiraux
 //
-// This file is part of dynamic-graph.
-// dynamic-graph is free software: you can redistribute it and/or
-// modify it under the terms of the GNU Lesser General Public License
-// as published by the Free Software Foundation, either version 3 of
-// the License, or (at your option) any later version.
-// dynamic-graph 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 Lesser General Public License for more details.  You should
-// have received a copy of the GNU Lesser General Public License along
-// with dynamic-graph.  If not, see <http://www.gnu.org/licenses/>.
 
 #ifndef DYNAMIC_GRAPH_COMMAND_SETTER_H
 #define DYNAMIC_GRAPH_COMMAND_SETTER_H
@@ -72,4 +61,3 @@ namespace dynamicgraph {
 
 #include "dynamic-graph/command-setter.t.cpp"
 #endif //DYNAMIC_GRAPH_COMMAND_SETTER_H
-
diff --git a/include/dynamic-graph/command-setter.t.cpp b/include/dynamic-graph/command-setter.t.cpp
index 0a26374c7e98620a76df446e83a683c41eac732b..f812159aae852845dd6754737a9140a6731ef4b4 100644
--- a/include/dynamic-graph/command-setter.t.cpp
+++ b/include/dynamic-graph/command-setter.t.cpp
@@ -3,17 +3,6 @@
 //
 // Author: Florent Lamiraux
 //
-// This file is part of dynamic-graph.
-// dynamic-graph is free software: you can redistribute it and/or
-// modify it under the terms of the GNU Lesser General Public License
-// as published by the Free Software Foundation, either version 3 of
-// the License, or (at your option) any later version.
-// dynamic-graph 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 Lesser General Public License for more details.  You should
-// have received a copy of the GNU Lesser General Public License along
-// with dynamic-graph.  If not, see <http://www.gnu.org/licenses/>.
 
 #ifndef DYNAMIC_GRAPH_COMMAND_SETTER_T_CPP
 #define DYNAMIC_GRAPH_COMMAND_SETTER_T_CPP
@@ -26,7 +15,7 @@ namespace dynamicgraph {
   class Entity;
   namespace command {
 
-    // 
+    //
     // Template specialization: bool
     //
     template <class E>
@@ -64,7 +53,7 @@ namespace dynamicgraph {
       return Value();
     }
 
-    // 
+    //
     // Template specialization: unsigned
     //
     template <class E>
@@ -102,7 +91,7 @@ namespace dynamicgraph {
       return Value();
     }
 
-    // 
+    //
     // Template specialization: int
     //
     template <class E>
@@ -140,7 +129,7 @@ namespace dynamicgraph {
       return Value();
     }
 
-    // 
+    //
     // Template specialization: float
     //
     template <class E>
@@ -178,7 +167,7 @@ namespace dynamicgraph {
       return Value();
     }
 
-    // 
+    //
     // Template specialization: double
     //
     template <class E>
@@ -216,7 +205,7 @@ namespace dynamicgraph {
       return Value();
     }
 
-    // 
+    //
     // Template specialization: std::string
     //
     template <class E>
@@ -254,7 +243,7 @@ namespace dynamicgraph {
       return Value();
     }
 
-    // 
+    //
     // Template specialization: Vector
     //
     template <class E>
@@ -292,7 +281,7 @@ namespace dynamicgraph {
       return Value();
     }
 
-    // 
+    //
     // Template specialization: Matrix
     //
     template <class E>
diff --git a/include/dynamic-graph/command.h b/include/dynamic-graph/command.h
index 832bf4aa3a19338a4a20d77c6703298a3d4590c4..b383be5b1f37dfe40e9b809d55a906804382a9d2 100644
--- a/include/dynamic-graph/command.h
+++ b/include/dynamic-graph/command.h
@@ -3,17 +3,6 @@
 //
 // Author: Florent Lamiraux
 //
-// This file is part of dynamic-graph.
-// dynamic-graph is free software: you can redistribute it and/or
-// modify it under the terms of the GNU Lesser General Public License
-// as published by the Free Software Foundation, either version 3 of
-// the License, or (at your option) any later version.
-// dynamic-graph 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 Lesser General Public License for more details.  You should
-// have received a copy of the GNU Lesser General Public License along
-// with dynamic-graph.  If not, see <http://www.gnu.org/licenses/>.
 
 #ifndef DYNAMIC_GRAPH_COMMAND_H
 #define DYNAMIC_GRAPH_COMMAND_H
diff --git a/include/dynamic-graph/contiifstream.h b/include/dynamic-graph/contiifstream.h
deleted file mode 100644
index 4741450a5daeeaabcbe29e2acfa8f78154efc623..0000000000000000000000000000000000000000
--- a/include/dynamic-graph/contiifstream.h
+++ /dev/null
@@ -1,70 +0,0 @@
-// -*- mode: c++ -*-
-// Copyright 2010, François Bleibel, Thomas Moulard, Olivier Stasse,
-// JRL, CNRS/AIST.
-//
-// This file is part of dynamic-graph.
-// dynamic-graph is free software: you can redistribute it and/or
-// modify it under the terms of the GNU Lesser General Public License
-// as published by the Free Software Foundation, either version 3 of
-// the License, or (at your option) any later version.
-//
-// dynamic-graph 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 Lesser Public License for more details.  You should have
-// received a copy of the GNU Lesser General Public License along with
-// dynamic-graph. If not, see <http://www.gnu.org/licenses/>.
-
-#ifndef DYNAMIC_GRAPH_CONTIIFSTREAM_H
-# define DYNAMIC_GRAPH_CONTIIFSTREAM_H
-# include <fstream>
-# include <list>
-# include <sstream>
-
-# ifndef WIN32
-#  include <unistd.h>
-#  include <pthread.h>
-# endif //! WIN32
-
-# include <dynamic-graph/fwd.hh>
-# include <dynamic-graph/interpreter.h>
-# include <dynamic-graph/config-contiifstream.hh>
-
-namespace dynamicgraph
-{
-  /// \ingroup debug
-  ///
-  /// \brief TODO
-  ///
-  class DG_CONTIIFSTREAM_DLLAPI Contiifstream
-  {
-  public:
-    explicit Contiifstream (const std::string& n = "");
-    ~Contiifstream  ();
-
-    inline void open (const std::string& n)
-    {
-      filename = n;
-      cursor = 0;
-    }
-
-    bool loop ();
-
-    inline bool ready ()
-    {
-      return 0 < reader.size  ();
-    }
-
-    std::string next  ();
-
-  protected:
-    std::string filename;
-    std::streamoff cursor;
-    static const unsigned int BUFFER_SIZE = 256;
-    char buffer[BUFFER_SIZE];
-    std::list< std::string > reader;
-    bool first;
-  };
-} // end of namespace dynamicgraph.
-
-#endif //! DYNAMIC_GRAPH_CONTIIFSTREAM_H
diff --git a/include/dynamic-graph/debug.h b/include/dynamic-graph/debug.h
index 216a35aff2fad0ec694777897c51eedfff876cfa..7bc3627dddca5ff80fa1e42a9953bd5054729edc 100644
--- a/include/dynamic-graph/debug.h
+++ b/include/dynamic-graph/debug.h
@@ -2,18 +2,6 @@
 // Copyright 2010, François Bleibel, Thomas Moulard, Olivier Stasse,
 // JRL, CNRS/AIST.
 //
-// This file is part of dynamic-graph.
-// dynamic-graph is free software: you can redistribute it and/or
-// modify it under the terms of the GNU Lesser General Public License
-// as published by the Free Software Foundation, either version 3 of
-// the License, or (at your option) any later version.
-//
-// dynamic-graph 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 Lesser Public License for more details.  You should have
-// received a copy of the GNU Lesser General Public License along with
-// dynamic-graph. If not, see <http://www.gnu.org/licenses/>.
 
 #ifndef DYNAMIC_GRAPH_DEBUG_HH
 # define DYNAMIC_GRAPH_DEBUG_HH
diff --git a/include/dynamic-graph/dynamic-graph-api.h b/include/dynamic-graph/dynamic-graph-api.h
index e1125ee588492ff581364b090af72ffe5468619b..69dff1d9be4f30a544a7b93f7f7a54111f424440 100644
--- a/include/dynamic-graph/dynamic-graph-api.h
+++ b/include/dynamic-graph/dynamic-graph-api.h
@@ -2,18 +2,6 @@
 // Copyright 2010, François Bleibel, Thomas Moulard, Olivier Stasse,
 // JRL, CNRS/AIST.
 //
-// This file is part of dynamic-graph.
-// dynamic-graph is free software: you can redistribute it and/or
-// modify it under the terms of the GNU Lesser General Public License
-// as published by the Free Software Foundation, either version 3 of
-// the License, or (at your option) any later version.
-//
-// dynamic-graph 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 Lesser Public License for more details.  You should have
-// received a copy of the GNU Lesser General Public License along with
-// dynamic-graph. If not, see <http://www.gnu.org/licenses/>.
 
 #ifndef DYNAMIC_GRAPH_API_H
 # define DYNAMIC_GRAPH_API_H
diff --git a/include/dynamic-graph/eigen-io.h b/include/dynamic-graph/eigen-io.h
index f96d7a839be607d99116f360d3213486fe55fa20..4198b52f23a3486f88b81bbf3bb484387495dec4 100644
--- a/include/dynamic-graph/eigen-io.h
+++ b/include/dynamic-graph/eigen-io.h
@@ -3,17 +3,6 @@
 //
 // Author: Rohan Budhiraja
 //
-// This file is part of dynamic-graph.
-// dynamic-graph is free software: you can redistribute it and/or
-// modify it under the terms of the GNU Lesser General Public License
-// as published by the Free Software Foundation, either version 3 of
-// the License, or (at your option) any later version.
-// dynamic-graph 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 Lesser General Public License for more details.  You should
-// have received a copy of the GNU Lesser General Public License along
-// with dynamic-graph.  If not, see <http://www.gnu.org/licenses/>.
 
 #ifndef DYNAMIC_GRAPH_EIGEN_IO_H
 #define DYNAMIC_GRAPH_EIGEN_IO_H
@@ -39,7 +28,7 @@ using dynamicgraph::ExceptionSignal;
 namespace Eigen {
   typedef EIGEN_DEFAULT_DENSE_INDEX_TYPE eigen_index;
 
-  inline std::istringstream& operator >> (std::istringstream &iss, 
+  inline std::istringstream& operator >> (std::istringstream &iss,
 					  dynamicgraph::Vector &inst) {
     unsigned int _size;
     double _dbl_val;
@@ -82,7 +71,7 @@ namespace Eigen {
    */
 
   template<typename Derived>
-  inline std::istringstream& operator >> (std::istringstream &iss, 
+  inline std::istringstream& operator >> (std::istringstream &iss,
 					  DenseBase<Derived> &inst) {
     unsigned int _colsize;
     unsigned int _rowsize;
@@ -133,13 +122,13 @@ namespace Eigen {
     return iss;
   }
 
-  
-  inline std::istringstream& operator >> (std::istringstream &iss, 
+
+  inline std::istringstream& operator >> (std::istringstream &iss,
 					  Transform<double,3,Affine> &inst) {
     MatrixXd M;    iss >> M;    inst.matrix() = M;    return iss;  }
-  
-  
-  
+
+
+
 
   /* \brief Eigen Homogeneous Matrix output
    *
@@ -147,27 +136,27 @@ namespace Eigen {
    * e.g. [2,5]((1 23 32.2 12.12 32),(2 32 23 92.01 19.2))
    */
 
-  inline std::ostream& operator << (std::ostream &os, 
+  inline std::ostream& operator << (std::ostream &os,
 				    Transform<double,3,Affine> MH) {
     IOFormat boostFmt(StreamPrecision, DontAlignCols,
 		      ",", ",",
 		      "(",")",
 		      "(",")");
-    
+
     os << "[4,4]"<< MH.matrix().format(boostFmt);      return os;   }
-  
-  
-  inline std::ostream& operator << (std::ostream &os, 
+
+
+  inline std::ostream& operator << (std::ostream &os,
 				    AngleAxisd quat) {
     VectorXd v(4);      v(0) = quat.angle();      v.tail<3>() = quat.axis();
     os << v;      return os;   }
-  
-  inline std::istringstream& operator >> (std::istringstream &iss, 
+
+  inline std::istringstream& operator >> (std::istringstream &iss,
 					  AngleAxisd &inst) {
     VectorXd v(4);    iss >>v;
     inst.angle() = v(0);    inst.axis() = v.tail<3>();
     return iss;  }
-  
+
 }
 
 
diff --git a/include/dynamic-graph/entity-helper.h b/include/dynamic-graph/entity-helper.h
index 694910beb8ca30786d584d496c231fc9757f4e23..15fc8d8804a3f946deaaf06a056caab4a9fec6c7 100644
--- a/include/dynamic-graph/entity-helper.h
+++ b/include/dynamic-graph/entity-helper.h
@@ -1,17 +1,6 @@
 /*
  * Copyright 2011, Nicolas Mansard, LAAS-CNRS
  *
- * This file is part of sot-core.
- * sot-core is free software: you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public License
- * as published by the Free Software Foundation, either version 3 of
- * the License, or (at your option) any later version.
- * sot-core 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 Lesser General Public License for more details.  You should
- * have received a copy of the GNU Lesser General Public License along
- * with sot-core.  If not, see <http://www.gnu.org/licenses/>.
  */
 
 #ifndef __sot_core_entity_helper_H__
diff --git a/include/dynamic-graph/entity.h b/include/dynamic-graph/entity.h
index ae5b9f0060037af4eca0e7d20c6bf077918e3908..5c57b5f37cf7a8e8f7530ca960acdc6e687d48fa 100644
--- a/include/dynamic-graph/entity.h
+++ b/include/dynamic-graph/entity.h
@@ -2,18 +2,6 @@
 // Copyright 2010, François Bleibel, Thomas Moulard, Olivier Stasse,
 // JRL, CNRS/AIST.
 //
-// This file is part of dynamic-graph.
-// dynamic-graph is free software: you can redistribute it and/or
-// modify it under the terms of the GNU Lesser General Public License
-// as published by the Free Software Foundation, either version 3 of
-// the License, or (at your option) any later version.
-//
-// dynamic-graph 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 Lesser Public License for more details.  You should have
-// received a copy of the GNU Lesser General Public License along with
-// dynamic-graph. If not, see <http://www.gnu.org/licenses/>.
 
 #ifndef DYNAMIC_GRAPH_ENTITY_H
 # define DYNAMIC_GRAPH_ENTITY_H
@@ -29,6 +17,7 @@
 # include <dynamic-graph/exception-factory.h>
 # include <dynamic-graph/signal-array.h>
 # include <dynamic-graph/signal-base.h>
+# include <dynamic-graph/logger.h>
 
 /// \brief Helper macro for entity declaration.
 ///
@@ -108,6 +97,22 @@ namespace dynamicgraph
     command::Command* getNewStyleCommand( const std::string& cmdName );
 
     SignalMap getSignalMap() const;
+
+    /** \name Logger related methods */
+    /** \{*/
+    /// \brief Send messages \param msg with level t. Add string file and line to message.
+    void sendMsg(const std::string &msg,
+		 MsgType t=MSG_TYPE_INFO,
+		 const char *file="",
+		 int line=0);
+
+    /// \brief Specify the verbosity level of the logger.
+    void setLoggerVerbosityLevel(LoggerVerbosity lv)
+    {logger_.setVerbosity(lv);}
+
+    /// \brief Get the logger's verbosity level.
+    LoggerVerbosity getLoggerVerbosityLevel()
+    { return logger_.getVerbosity(); };
   protected:
     void addCommand(const std::string& name,command::Command* command);
 
@@ -120,6 +125,7 @@ namespace dynamicgraph
     std::string name;
     SignalMap signalMap;
     CommandMap_t commandMap;
+    Logger logger_;
   };
 
   DYNAMIC_GRAPH_DLLAPI std::ostream&
diff --git a/include/dynamic-graph/exception-abstract.h b/include/dynamic-graph/exception-abstract.h
index 2eb40ff96cabc94043b1220490da9e2a465fab30..3e1bf4c1540843575b6549d921fedeeff0948624 100644
--- a/include/dynamic-graph/exception-abstract.h
+++ b/include/dynamic-graph/exception-abstract.h
@@ -2,18 +2,6 @@
 // Copyright 2010, François Bleibel, Thomas Moulard, Olivier Stasse,
 // JRL, CNRS/AIST.
 //
-// This file is part of dynamic-graph.
-// dynamic-graph is free software: you can redistribute it and/or
-// modify it under the terms of the GNU Lesser General Public License
-// as published by the Free Software Foundation, either version 3 of
-// the License, or (at your option) any later version.
-//
-// dynamic-graph 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 Lesser Public License for more details.  You should have
-// received a copy of the GNU Lesser General Public License along with
-// dynamic-graph. If not, see <http://www.gnu.org/licenses/>.
 
 #ifndef DYNAMIC_GRAPH_EXCEPTION_ABSTRACT_H
 # define DYNAMIC_GRAPH_EXCEPTION_ABSTRACT_H
diff --git a/include/dynamic-graph/exception-factory.h b/include/dynamic-graph/exception-factory.h
index 214c8e28d375e0b9261e08958f6473e2c1bb7da6..836b15a666c1efc6882651a49b3fd8869c454b45 100644
--- a/include/dynamic-graph/exception-factory.h
+++ b/include/dynamic-graph/exception-factory.h
@@ -2,18 +2,6 @@
 // Copyright 2010, François Bleibel, Thomas Moulard, Olivier Stasse,
 // JRL, CNRS/AIST.
 //
-// This file is part of dynamic-graph.
-// dynamic-graph is free software: you can redistribute it and/or
-// modify it under the terms of the GNU Lesser General Public License
-// as published by the Free Software Foundation, either version 3 of
-// the License, or (at your option) any later version.
-//
-// dynamic-graph 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 Lesser Public License for more details.  You should have
-// received a copy of the GNU Lesser General Public License along with
-// dynamic-graph. If not, see <http://www.gnu.org/licenses/>.
 
 #ifndef DYNAMIC_GRAPH_EXCEPTION_FACTORY_H
 # define DYNAMIC_GRAPH_EXCEPTION_FACTORY_H
diff --git a/include/dynamic-graph/exception-signal.h b/include/dynamic-graph/exception-signal.h
index fcf379cc30db4ce1ac9c785a5753cfe4110ec76e..abadca164561cefbe948a59d6874e2ad63beb807 100644
--- a/include/dynamic-graph/exception-signal.h
+++ b/include/dynamic-graph/exception-signal.h
@@ -2,18 +2,6 @@
 // Copyright 2010, François Bleibel, Thomas Moulard, Olivier Stasse,
 // JRL, CNRS/AIST.
 //
-// This file is part of dynamic-graph.
-// dynamic-graph is free software: you can redistribute it and/or
-// modify it under the terms of the GNU Lesser General Public License
-// as published by the Free Software Foundation, either version 3 of
-// the License, or (at your option) any later version.
-//
-// dynamic-graph 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 Lesser Public License for more details.  You should have
-// received a copy of the GNU Lesser General Public License along with
-// dynamic-graph. If not, see <http://www.gnu.org/licenses/>.
 
 #ifndef DYNAMIC_GRAPH_EXCEPTION_SIGNAL_H
 # define DYNAMIC_GRAPH_EXCEPTION_SIGNAL_H
diff --git a/include/dynamic-graph/exception-traces.h b/include/dynamic-graph/exception-traces.h
index 81ab6767857bba9012e1670849fd7b40cba99c12..6f5c73f0ee27d76aba2b70cda0ca44639898370d 100644
--- a/include/dynamic-graph/exception-traces.h
+++ b/include/dynamic-graph/exception-traces.h
@@ -2,18 +2,6 @@
 // Copyright 2010, François Bleibel, Thomas Moulard, Olivier Stasse,
 // JRL, CNRS/AIST.
 //
-// This file is part of dynamic-graph.
-// dynamic-graph is free software: you can redistribute it and/or
-// modify it under the terms of the GNU Lesser General Public License
-// as published by the Free Software Foundation, either version 3 of
-// the License, or (at your option) any later version.
-//
-// dynamic-graph 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 Lesser Public License for more details.  You should have
-// received a copy of the GNU Lesser General Public License along with
-// dynamic-graph. If not, see <http://www.gnu.org/licenses/>.
 
 #ifndef DYNAMIC_GRAPH_EXCEPTION_TRACES_H
 # define DYNAMIC_GRAPH_EXCEPTION_TRACES_H
diff --git a/include/dynamic-graph/factory.h b/include/dynamic-graph/factory.h
index 292f9d9bb72d88ae012bb5e0b613f4baa5f6f08a..1c94fcfaa8b7fea84e9b9a45bf4e5840b8b135d9 100644
--- a/include/dynamic-graph/factory.h
+++ b/include/dynamic-graph/factory.h
@@ -2,18 +2,6 @@
 // Copyright 2010, François Bleibel, Thomas Moulard, Olivier Stasse,
 // JRL, CNRS/AIST.
 //
-// This file is part of dynamic-graph.
-// dynamic-graph is free software: you can redistribute it and/or
-// modify it under the terms of the GNU Lesser General Public License
-// as published by the Free Software Foundation, either version 3 of
-// the License, or (at your option) any later version.
-//
-// dynamic-graph 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 Lesser Public License for more details.  You should have
-// received a copy of the GNU Lesser General Public License along with
-// dynamic-graph. If not, see <http://www.gnu.org/licenses/>.
 
 #ifndef DYNAMIC_GRAPH_FACTORY_HH
 # define DYNAMIC_GRAPH_FACTORY_HH
diff --git a/include/dynamic-graph/fwd.hh b/include/dynamic-graph/fwd.hh
index 6a3f558c232f3f62cb4d8afb9b3d51d97fdf6d72..29b9b347c62cc6dd18fd934e3c53e237efe8c037 100644
--- a/include/dynamic-graph/fwd.hh
+++ b/include/dynamic-graph/fwd.hh
@@ -1,24 +1,12 @@
-// Copyright 2010, Thomas Moulard, JRL, CNRS/AIST
+// Copyright 2010-2019, CNRS, JRL, AIST, LAAS
+// Thomas Moulard, Olivier Stasse
 //
-// This file is part of dynamic-graph.
-// dynamic-graph is free software: you can redistribute it and/or
-// modify it under the terms of the GNU Lesser General Public License
-// as published by the Free Software Foundation, either version 3 of
-// the License, or (at your option) any later version.
-//
-// dynamic-graph 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 Lesser Public License for more details.  You should have
-// received a copy of the GNU Lesser General Public License along with
-// dynamic-graph. If not, see <http://www.gnu.org/licenses/>.
 
 #ifndef DYNAMIC_GRAPH_FWD_HH
 # define DYNAMIC_GRAPH_FWD_HH
 
 namespace dynamicgraph
 {
-  class Contiifstream;
   class DebugTrace;
 
   class PluginRefMap;
@@ -31,6 +19,7 @@ namespace dynamicgraph
   class FactoryStorage;
   class Interpreter;
   class InterpreterHelper;
+  class Logger;
   class OutStringStream;
   class PluginLoader;
   class PoolStorage;
diff --git a/include/dynamic-graph/linear-algebra.h b/include/dynamic-graph/linear-algebra.h
index 4b566fb6f881935454e5c019d542b58383cde15e..c0b3d216f4f113897ee72dbe29bfb03426fe4989 100644
--- a/include/dynamic-graph/linear-algebra.h
+++ b/include/dynamic-graph/linear-algebra.h
@@ -3,17 +3,6 @@
 //
 // Author: Florent Lamiraux
 //
-// This file is part of dynamic-graph.
-// dynamic-graph is free software: you can redistribute it and/or
-// modify it under the terms of the GNU Lesser General Public License
-// as published by the Free Software Foundation, either version 3 of
-// the License, or (at your option) any later version.
-// dynamic-graph 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 Lesser General Public License for more details.  You should
-// have received a copy of the GNU Lesser General Public License along
-// with dynamic-graph.  If not, see <http://www.gnu.org/licenses/>.
 
 #ifndef DYNAMIC_GRAPH_LINEAR_ALGEBRA_H
 #define DYNAMIC_GRAPH_LINEAR_ALGEBRA_H
diff --git a/include/dynamic-graph/logger.h b/include/dynamic-graph/logger.h
new file mode 100644
index 0000000000000000000000000000000000000000..46a58ca3380ba5234490c3270a092c849ee14887
--- /dev/null
+++ b/include/dynamic-graph/logger.h
@@ -0,0 +1,219 @@
+/*
+ * Copyright 2015, 2019
+ * LAAS-CNRS
+ * Andrea Del Prete, François Bailly, Olivier Stasse
+ *
+ */
+
+#ifndef __dynamic_graph_logger_H__
+#define __dynamic_graph_logger_H__
+
+/* --------------------------------------------------------------------- */
+/* --- API ------------------------------------------------------------- */
+/* --------------------------------------------------------------------- */
+
+#if defined (WIN32)
+#  if defined (logger_EXPORTS)
+#    define LOGGER_EXPORT __declspec(dllexport)
+#  else
+#    define LOGGER_EXPORT __declspec(dllimport)
+#  endif
+#else
+#  define LOGGER_EXPORT
+#endif
+
+namespace dynamicgraph {
+
+  /** Enum representing the different kind of messages.
+   */
+  enum MsgType
+  {
+    MSG_TYPE_DEBUG          =0,
+    MSG_TYPE_INFO           =1,
+    MSG_TYPE_WARNING        =2,
+    MSG_TYPE_ERROR          =3,
+    MSG_TYPE_DEBUG_STREAM   =4,
+    MSG_TYPE_INFO_STREAM    =5,
+    MSG_TYPE_WARNING_STREAM =6,
+    MSG_TYPE_ERROR_STREAM   =7
+  };
+}
+
+/* --------------------------------------------------------------------- */
+/* --- INCLUDE --------------------------------------------------------- */
+/* --------------------------------------------------------------------- */
+
+#include <map>
+#include <iomanip> // std::setprecision
+#include <fstream>
+#include <sstream>
+#include "boost/assign.hpp"
+#include <dynamic-graph/linear-algebra.h>
+
+namespace dynamicgraph {
+
+//#define LOGGER_VERBOSITY_INFO_WARNING_ERROR
+#define LOGGER_VERBOSITY_ALL
+
+#define SEND_MSG(msg,type)         sendMsg(msg,type,__FILE__,__LINE__)
+
+#define SEND_DEBUG_STREAM_MSG(msg) SEND_MSG(msg,MSG_TYPE_DEBUG_STREAM)
+#define SEND_INFO_STREAM_MSG(msg)   SEND_MSG(msg,MSG_TYPE_INFO_STREAM)
+#define SEND_WARNING_STREAM_MSG(msg)  SEND_MSG(msg,MSG_TYPE_WARNING_STREAM)
+#define SEND_ERROR_STREAM_MSG(msg)    SEND_MSG(msg,MSG_TYPE_ERROR_STREAM)
+
+  template<typename T>
+  std::string toString(const T& v, const int precision=3, const int width=-1)
+  {
+    std::stringstream ss;
+    if(width>precision)
+      ss<<std::fixed<<std::setw(width)<<std::setprecision(precision)<<v;
+    else
+      ss<<std::fixed<<std::setprecision(precision)<<v;
+    return ss.str();
+  }
+
+  template<typename T>
+  std::string toString(const std::vector<T>& v, const int precision=3, const int width=-1,
+                       const std::string separator=", ")
+  {
+    std::stringstream ss;
+    if(width>precision)
+    {
+      for(int i=0; i<v.size()-1; i++)
+        ss<<std::fixed<<std::setw(width)<<std::setprecision(precision)<<v[i]<<separator;
+      ss<<std::fixed<<std::setw(width)<<std::setprecision(precision)<<v[v.size()-1];
+    }
+    else
+    {
+      for(int i=0; i<v.size()-1; i++)
+        ss<<std::fixed<<std::setprecision(precision)<<v[i]<<separator;
+      ss<<std::fixed<<std::setprecision(precision)<<v[v.size()-1];
+    }
+
+    return ss.str();
+  }
+
+//      template<typename T, int N>
+//      std::string toString(const Eigen::Matrix<T, N, 1, 0, N, 1>& v, const std::string separator=", ",
+//                           const int precision=3, const int width=-1)
+  template<typename T>
+  std::string toString(const Eigen::MatrixBase<T>& v,
+                       const int precision=3, const int width=-1, const std::string separator=", ")
+  {
+    std::stringstream ss;
+    if(width>precision)
+    {
+      for(int i=0; i<v.size()-1; i++)
+        ss<<std::fixed<<std::setw(width)<<std::setprecision(precision)<<v[i]<<separator;
+      ss<<std::fixed<<std::setw(width)<<std::setprecision(precision)<<v[v.size()-1];
+    }
+    else
+    {
+      for(int i=0; i<v.size()-1; i++)
+        ss<<std::fixed<<std::setprecision(precision)<<v[i]<<separator;
+      ss<<std::setprecision(precision)<<v[v.size()-1];
+    }
+
+    return ss.str();
+  }
+
+  enum LoggerVerbosity
+  {
+    VERBOSITY_ALL,
+    VERBOSITY_INFO_WARNING_ERROR,
+    VERBOSITY_WARNING_ERROR,
+    VERBOSITY_ERROR,
+    VERBOSITY_NONE
+  };
+
+  /// \ingroup debug
+  ///
+  /// \brief Class for logging messages
+  ///
+  /// It is intended to be used like this:
+  /// \code
+  /// #define ENABLE_RT_LOG
+  /// #include <dynamic-graph/real-time-logger.h>
+  ///
+  /// // Somewhere in the main function of your executable
+  /// int main (int argc, char** argv) {
+  ///   std::ofstream of;
+  ///   of.open("/tmp/dg-LOGS.txt",std::ofstream::out|std::ofstream::app);
+  ///   dgADD_OSTREAM_TO_RTLOG (of);
+  /// }
+  ///
+  /// // Somewhere in your library
+  /// dynamicgraph::LoggerVerbosity aLoggerVerbosityLevel = VERBOSITY_WARNING_ERROR;
+  /// entity.setLoggerVerbosityLevel(aLoggerVerbosityLevel);
+  /// ...
+  /// std::string aMsg=aBaseMsg+" WARNING";
+  /// entity.sendMsg(aMsg,dynamicgraph::MSG_TYPE_WARNING, __FILE__,__LINE__);
+  ///
+  /// \endcode
+  ///
+  ///
+  class Logger
+  {
+  public:
+
+    /** Constructor */
+    Logger(double timeSample=0.001, double streamPrintPeriod=1.0);
+
+    /** Destructor */
+    ~Logger();
+
+    /** Method to be called at every control iteration
+       * to decrement the internal Logger's counter. */
+    void countdown();
+
+    /** Print the specified message on standard output if the verbosity level
+     * allows it. The file name and the line number are used to identify
+     * the point where sendMsg is called so that streaming messages are
+     * printed only every streamPrintPeriod iterations.
+     */
+    void sendMsg(std::string msg, MsgType type, const char* file="", int line=0);
+
+    /** Set the sampling time at which the method countdown()
+       * is going to be called. */
+    bool setTimeSample(double t);
+
+    /** Set the time period for printing of streaming messages. */
+    bool setStreamPrintPeriod(double s);
+
+    /** Set the verbosity level of the logger. */
+    void setVerbosity(LoggerVerbosity lv);
+
+    /** Get the verbosity level of the logger. */
+    LoggerVerbosity getVerbosity();
+
+  protected:
+    LoggerVerbosity m_lv;                /// verbosity of the logger
+    double          m_timeSample;        /// specify the period of call of the countdown method
+    double          m_streamPrintPeriod; /// specify the time period of the stream prints
+    double          m_printCountdown;    /// every time this is < 0 (i.e. every _streamPrintPeriod sec) print stuff
+
+    /** Pointer to the dynamic structure which holds the collection of streaming messages */
+    std::map<std::string, double> m_stream_msg_counters;
+
+    bool isStreamMsg(MsgType m)
+    { return m==MSG_TYPE_ERROR_STREAM || m==MSG_TYPE_DEBUG_STREAM || m==MSG_TYPE_INFO_STREAM || m==MSG_TYPE_WARNING_STREAM; }
+
+    bool isDebugMsg(MsgType m)
+    { return m==MSG_TYPE_DEBUG_STREAM || m==MSG_TYPE_DEBUG; }
+
+    bool isInfoMsg(MsgType m)
+    { return m==MSG_TYPE_INFO_STREAM || m==MSG_TYPE_INFO; }
+
+    bool isWarningMsg(MsgType m)
+    { return m==MSG_TYPE_WARNING_STREAM || m==MSG_TYPE_WARNING; }
+
+    bool isErrorMsg(MsgType m)
+    { return m==MSG_TYPE_ERROR_STREAM || m==MSG_TYPE_ERROR; }
+  };
+
+}        // namespace dynamicgraph
+
+
+
+#endif // #ifndef __sot_torque_control_logger_H__
diff --git a/include/dynamic-graph/null-ptr.hh b/include/dynamic-graph/null-ptr.hh
index 2842e61d7c867f65f54b33aa663a4938e6d2d59d..60ea303cb2b862ce93e9cf90a685972b020be03c 100644
--- a/include/dynamic-graph/null-ptr.hh
+++ b/include/dynamic-graph/null-ptr.hh
@@ -1,17 +1,5 @@
 // Copyright 2010, Thomas Moulard, JRL, CNRS/AIST
 //
-// This file is part of dynamic-graph.
-// dynamic-graph is free software: you can redistribute it and/or
-// modify it under the terms of the GNU Lesser General Public License
-// as published by the Free Software Foundation, either version 3 of
-// the License, or (at your option) any later version.
-//
-// dynamic-graph 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 Lesser Public License for more details.  You should have
-// received a copy of the GNU Lesser General Public License along with
-// dynamic-graph. If not, see <http://www.gnu.org/licenses/>.
 
 #ifndef DYNAMIC_GRAPH_NULL_PTR_HH
 # define DYNAMIC_GRAPH_NULL_PTR_HH
@@ -26,7 +14,7 @@ namespace dynamicgraph
     {
       return 0;
     }
-    
+
     template<class C, class T>
     operator T C::*() const
     {
diff --git a/include/dynamic-graph/pool.h b/include/dynamic-graph/pool.h
index feaeb092dda6fed753f7963da52be35916e6eb5d..9d380e1a27022098e7018ce546c6b7d101cad435 100644
--- a/include/dynamic-graph/pool.h
+++ b/include/dynamic-graph/pool.h
@@ -2,18 +2,6 @@
 // Copyright 2010, François Bleibel, Thomas Moulard, Olivier Stasse,
 // JRL, CNRS/AIST.
 //
-// This file is part of dynamic-graph.
-// dynamic-graph is free software: you can redistribute it and/or
-// modify it under the terms of the GNU Lesser General Public License
-// as published by the Free Software Foundation, either version 3 of
-// the License, or (at your option) any later version.
-//
-// dynamic-graph 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 Lesser Public License for more details.  You should have
-// received a copy of the GNU Lesser General Public License along with
-// dynamic-graph. If not, see <http://www.gnu.org/licenses/>.
 
 #ifndef DYNAMIC_GRAPH_POOL_H
 # define DYNAMIC_GRAPH_POOL_H
diff --git a/include/dynamic-graph/real-time-logger.h b/include/dynamic-graph/real-time-logger.h
index f87801101079e236b90d719a58c1964ea00f9057..8049e8848c8ada172d0cb7369a1edf87e04242af 100644
--- a/include/dynamic-graph/real-time-logger.h
+++ b/include/dynamic-graph/real-time-logger.h
@@ -1,18 +1,6 @@
 // -*- mode: c++ -*-
 // Copyright 2018, Joseph Mirabel LAAS-CNRS
 //
-// This file is part of dynamic-graph.
-// dynamic-graph is free software: you can redistribute it and/or
-// modify it under the terms of the GNU Lesser General Public License
-// as published by the Free Software Foundation, either version 3 of
-// the License, or (at your option) any later version.
-//
-// dynamic-graph 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 Lesser Public License for more details.  You should have
-// received a copy of the GNU Lesser General Public License along with
-// dynamic-graph. If not, see <http://www.gnu.org/licenses/>.
 
 #ifndef DYNAMIC_GRAPH_LOGGER_REAL_TIME_H
 # define DYNAMIC_GRAPH_LOGGER_REAL_TIME_H
diff --git a/include/dynamic-graph/signal-array.h b/include/dynamic-graph/signal-array.h
index 3af85ffd5b3430690921834a54312ab756460083..6900b9b470f5f8fdee47261c1adf891806957d45 100644
--- a/include/dynamic-graph/signal-array.h
+++ b/include/dynamic-graph/signal-array.h
@@ -2,18 +2,6 @@
 // Copyright 2010, François Bleibel, Thomas Moulard, Olivier Stasse,
 // JRL, CNRS/AIST.
 //
-// This file is part of dynamic-graph.
-// dynamic-graph is free software: you can redistribute it and/or
-// modify it under the terms of the GNU Lesser General Public License
-// as published by the Free Software Foundation, either version 3 of
-// the License, or (at your option) any later version.
-//
-// dynamic-graph 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 Lesser Public License for more details.  You should have
-// received a copy of the GNU Lesser General Public License along with
-// dynamic-graph. If not, see <http://www.gnu.org/licenses/>.
 
 #ifndef DYNAMIC_GRAPH_SIGNAL_ARRAY_H
 # define DYNAMIC_GRAPH_SIGNAL_ARRAY_H
diff --git a/include/dynamic-graph/signal-base.h b/include/dynamic-graph/signal-base.h
index bb8f9ca9bcc0db1612fe01f283d1ed4708d8caf2..df8f1910c9ed27faf9cf87439372436faae99638 100644
--- a/include/dynamic-graph/signal-base.h
+++ b/include/dynamic-graph/signal-base.h
@@ -2,18 +2,6 @@
 // Copyright 2010, François Bleibel, Thomas Moulard, Olivier Stasse,
 // JRL, CNRS/AIST.
 //
-// This file is part of dynamic-graph.
-// dynamic-graph is free software: you can redistribute it and/or
-// modify it under the terms of the GNU Lesser General Public License
-// as published by the Free Software Foundation, either version 3 of
-// the License, or (at your option) any later version.
-//
-// dynamic-graph 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 Lesser Public License for more details.  You should have
-// received a copy of the GNU Lesser General Public License along with
-// dynamic-graph. If not, see <http://www.gnu.org/licenses/>.
 
 #ifndef DYNAMIC_GRAPH_SIGNAL_BASE_H
 # define DYNAMIC_GRAPH_SIGNAL_BASE_H
diff --git a/include/dynamic-graph/signal-cast-helper.h b/include/dynamic-graph/signal-cast-helper.h
index 4c7148d7441340b0841a84ec5996059386557f7d..ac10a3a93e33d08c93a378acaac409a0c1b45480 100644
--- a/include/dynamic-graph/signal-cast-helper.h
+++ b/include/dynamic-graph/signal-cast-helper.h
@@ -1,18 +1,6 @@
 // -*- c++-mode -*-
 // Copyright 2010 François Bleibel Thomas Moulard, Olivier Stasse, Nicolas Mansard
 //
-// This file is part of dynamic-graph.
-// dynamic-graph is free software: you can redistribute it and/or modify
-// it under the terms of the GNU Lesser General Public License as published by
-// the Free Software Foundation, either version 3 of the License, or
-// (at your option) any later version.
-//
-// dynamic-graph 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 Lesser General Public License for more details.
-// You should have received a copy of the GNU Lesser General Public License
-// along with dynamic-graph.  If not, see <http://www.gnu.org/licenses/>.
 
 #ifndef DYNAMIC_GRAPH_SIGNAL_CASTER_HELPER_HH
 # define DYNAMIC_GRAPH_SIGNAL_CASTER_HELPER_HH
diff --git a/include/dynamic-graph/signal-caster.h b/include/dynamic-graph/signal-caster.h
index 525f906f02e00aaa6ff74f5e50aa30be72137676..9bbf6cb355667872ac02ccafe3e7b486404c53b6 100644
--- a/include/dynamic-graph/signal-caster.h
+++ b/include/dynamic-graph/signal-caster.h
@@ -1,18 +1,6 @@
 // -*- c++-mode -*-
 // Copyright 2010 François Bleibel Thomas Moulard, Olivier Stasse
 //
-// This file is part of dynamic-graph.
-// dynamic-graph is free software: you can redistribute it and/or modify
-// it under the terms of the GNU Lesser General Public License as published by
-// the Free Software Foundation, either version 3 of the License, or
-// (at your option) any later version.
-//
-// dynamic-graph 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 Lesser General Public License for more details.
-// You should have received a copy of the GNU Lesser General Public License
-// along with dynamic-graph.  If not, see <http://www.gnu.org/licenses/>.
 
 #ifndef DYNAMIC_GRAPH_SIGNAL_CASTER_HH
 # define DYNAMIC_GRAPH_SIGNAL_CASTER_HH
diff --git a/include/dynamic-graph/signal-helper.h b/include/dynamic-graph/signal-helper.h
index 87bbec36668894eeadac415d152a569a0b747e00..a8d814dce4e399a8a057dd801b589b64cc1cae0e 100644
--- a/include/dynamic-graph/signal-helper.h
+++ b/include/dynamic-graph/signal-helper.h
@@ -1,17 +1,8 @@
 /*
- * Copyright 2011, Nicolas Mansard, LAAS-CNRS
+ * Copyright 2011, 2019
+ * LAAS-CNRS
+ * Nicolas Mansard, François Bailly
  *
- * This file is part of dynamic-graph.
- * dynamic-graph is free software: you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public License
- * as published by the Free Software Foundation, either version 3 of
- * the License, or (at your option) any later version.
- * dynamic-graph 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 Lesser General Public License for more details.  You should
- * have received a copy of the GNU Lesser General Public License along
- * with dynamic-graph.  If not, see <http://www.gnu.org/licenses/>.
  */
 
 #ifndef __dynamic_graph_signal_helper_H__
@@ -23,26 +14,60 @@
 #include <dynamic-graph/entity.h>
 #include <dynamic-graph/signal-ptr.h>
 #include <dynamic-graph/signal-time-dependent.h>
+#include <dynamic-graph/linear-algebra.h>
 
 /* --- MACROS ---------------------------------------------------------- */
+#define SIGNAL_OUT_FUNCTION_NAME(name) name##SOUT_function
 
-#define DECLARE_SIGNAL( name,IO,type )    ::dynamicgraph::Signal<type,int> name##S##IO
-#define CONSTRUCT_SIGNAL( name,IO,type )  name##S##IO( getClassName()+"("+getName()+")::"+#IO+"put("+#type+")::"+#name )
+#define DECLARE_SIGNAL( name,IO,type )    ::dynamicgraph::Signal<type,int> m_##name##S##IO
+#define CONSTRUCT_SIGNAL( name,IO,type )  m_##name##S##IO( getClassName()+"("+getName()+")::"+#IO+"put("+#type+")::"+#name )
+#define BIND_SIGNAL_TO_FUNCTION(name,IO,type) m_##name##S##IO.setFunction(boost::bind(&EntityClassName::SIGNAL_OUT_FUNCTION_NAME(name),this,_1,_2));
 
-#define DECLARE_SIGNAL_IN( name,type )    ::dynamicgraph::SignalPtr<type,int> name##SIN
-#define CONSTRUCT_SIGNAL_IN( name,type )  name##SIN( NULL,getClassName()+"("+getName()+")::input("+#type+")::"+#name )
+/**/
+
+#define DECLARE_SIGNAL_IN( name,type )    ::dynamicgraph::SignalPtr<type,int> m_##name##SIN
+#define CONSTRUCT_SIGNAL_IN( name,type )  m_##name##SIN( NULL,getClassName()+"("+getName()+")::input("+#type+")::"+#name )
+
+/**/
+
+#define DECLARE_SIGNAL_OUT_FUNCTION(name,type) \
+  type& SIGNAL_OUT_FUNCTION_NAME(name)(type&,int)
+
+#define DEFINE_SIGNAL_OUT_FUNCTION(name,type) \
+  type& EntityClassName::SIGNAL_OUT_FUNCTION_NAME(name)(type& s,int iter)
 
 #define SIGNAL_OUT_FUNCTION( name )  name##SOUT_function
+
 #define DECLARE_SIGNAL_OUT( name,type )                         \
   public:                                                       \
-    ::dynamicgraph::SignalTimeDependent<type,int> name##SOUT;	\
+    ::dynamicgraph::SignalTimeDependent<type,int> m_##name##SOUT;	\
   protected:                                                    \
   type& SIGNAL_OUT_FUNCTION(name)( type&,int )
+
 #define CONSTRUCT_SIGNAL_OUT( name,type,dep )		\
-  name##SOUT( boost::bind(&  EntityClassName::name##SOUT_function,this,_1,_2), \
+  m_##name##SOUT( boost::bind(&  EntityClassName::name##SOUT_function,this,_1,_2), \
 	      dep,getClassName()+"("+getName()+")::output("+#type+")::"+#name )
 
 
 
+/**************** INNER SIGNALS *******************/
+#define SIGNAL_INNER_FUNCTION_NAME(name) name##SINNER_function
+
+#define DECLARE_SIGNAL_INNER_FUNCTION(name,type) \
+  type& SIGNAL_INNER_FUNCTION_NAME(name)(type&,int)
+
+#define DEFINE_SIGNAL_INNER_FUNCTION(name,type) \
+  type& EntityClassName::SIGNAL_INNER_FUNCTION_NAME(name)(type& s,int iter)
+
+#define DECLARE_SIGNAL_INNER(name,type)                           \
+  public:                                                       \
+    ::dynamicgraph::SignalTimeDependent<type,int> m_##name##SINNER;\
+  protected:                                                    \
+    DECLARE_SIGNAL_INNER_FUNCTION(name,type)
+
+#define CONSTRUCT_SIGNAL_INNER( name,type,dep )		        \
+  m_##name##SINNER( boost::bind(&EntityClassName::name##SINNER_function,this,_1,_2), \
+              dep,getClassName()+"("+getName()+")::inner("+#type+")::"+#name )
+
 
 #endif // __dynamic_graph_signal_helper_H__
diff --git a/include/dynamic-graph/signal-ptr.h b/include/dynamic-graph/signal-ptr.h
index 3f3a6eeb3fdd89419d807241d32404d07729d141..4acdffed1b433d0c2ec5e46c0a31ed20def7ab5f 100644
--- a/include/dynamic-graph/signal-ptr.h
+++ b/include/dynamic-graph/signal-ptr.h
@@ -2,18 +2,6 @@
 // Copyright 2010, François Bleibel, Thomas Moulard, Olivier Stasse,
 // JRL, CNRS/AIST.
 //
-// This file is part of dynamic-graph.
-// dynamic-graph is free software: you can redistribute it and/or
-// modify it under the terms of the GNU Lesser General Public License
-// as published by the Free Software Foundation, either version 3 of
-// the License, or (at your option) any later version.
-//
-// dynamic-graph 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 Lesser Public License for more details.  You should have
-// received a copy of the GNU Lesser General Public License along with
-// dynamic-graph. If not, see <http://www.gnu.org/licenses/>.
 
 #ifndef DYNAMIC_GRAPH_SIGNAL_PTR_H
 #define DYNAMIC_GRAPH_SIGNAL_PTR_H
diff --git a/include/dynamic-graph/signal-ptr.t.cpp b/include/dynamic-graph/signal-ptr.t.cpp
index 6862e7ee91a18d888c6634c2409b3f625e16a08d..5df9d637755ffb417d3d798cbf1d62d33ef07906 100644
--- a/include/dynamic-graph/signal-ptr.t.cpp
+++ b/include/dynamic-graph/signal-ptr.t.cpp
@@ -2,18 +2,6 @@
 // Copyright 2010, François Bleibel, Thomas Moulard, Olivier Stasse,
 // JRL, CNRS/AIST.
 //
-// This file is part of dynamic-graph.
-// dynamic-graph is free software: you can redistribute it and/or
-// modify it under the terms of the GNU Lesser General Public License
-// as published by the Free Software Foundation, either version 3 of
-// the License, or (at your option) any later version.
-//
-// dynamic-graph 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 Lesser Public License for more details.  You should have
-// received a copy of the GNU Lesser General Public License along with
-// dynamic-graph. If not, see <http://www.gnu.org/licenses/>.
 
 #ifndef DYNAMIC_GRAPH_SIGNAL_PTR_T_CPP
 # define DYNAMIC_GRAPH_SIGNAL_PTR_T_CPP
@@ -121,7 +109,7 @@ namespace dynamicgraph
 	    transmitAbstract = false;
 	    DG_THROW ExceptionSignal( ExceptionSignal::PLUG_IMPOSSIBLE,
 				      "Compl. Uncompatible types for plugin.",
-				      "(while trying to plug <%s> on <%s>)" 
+				      "(while trying to plug <%s> on <%s>)"
                                       " with types <%s> on <%s>.",
 				      unknown_ref->getName ().c_str (),
 				      this->getName ().c_str (),
diff --git a/include/dynamic-graph/signal-time-dependent.h b/include/dynamic-graph/signal-time-dependent.h
index f9f4b1d09fa7e1f46899591c9005f79067315beb..0beb6483e8e12c0f8af8c0f9f9aad32bc0d42c46 100644
--- a/include/dynamic-graph/signal-time-dependent.h
+++ b/include/dynamic-graph/signal-time-dependent.h
@@ -2,18 +2,6 @@
 // Copyright 2010, François Bleibel, Thomas Moulard, Olivier Stasse,
 // JRL, CNRS/AIST.
 //
-// This file is part of dynamic-graph.
-// dynamic-graph is free software: you can redistribute it and/or
-// modify it under the terms of the GNU Lesser General Public License
-// as published by the Free Software Foundation, either version 3 of
-// the License, or (at your option) any later version.
-//
-// dynamic-graph 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 Lesser Public License for more details.  You should have
-// received a copy of the GNU Lesser General Public License along with
-// dynamic-graph. If not, see <http://www.gnu.org/licenses/>.
 
 #ifndef DYNAMIC_GRAPH_SIGNAL_TIME_DEPENDENT_H
 # define DYNAMIC_GRAPH_SIGNAL_TIME_DEPENDENT_H
diff --git a/include/dynamic-graph/signal.h b/include/dynamic-graph/signal.h
index 111bb8cd2144eb080b9ee9ce2386ab28113c5adf..18d25d389b6b887002e867a0d57de7851a3de1ba 100644
--- a/include/dynamic-graph/signal.h
+++ b/include/dynamic-graph/signal.h
@@ -5,17 +5,6 @@
  *
  * CNRS/AIST
  *
- * This file is part of dynamic-graph.
- * dynamic-graph is free software: you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public License
- * as published by the Free Software Foundation, either version 3 of
- * the License, or (at your option) any later version.
- * dynamic-graph 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 Lesser General Public License for more details.  You should
- * have received a copy of the GNU Lesser General Public License along
- * with dynamic-graph.  If not, see <http://www.gnu.org/licenses/>.
  */
 
 #ifndef __SIGNAL_HH
@@ -126,7 +115,7 @@ protected:
   inline operator const T&   () const { return accessCopy (); }
   virtual void getClassName(std::string & aClassName) const
   { aClassName = typeid(this).name(); }
-      
+
 
  public:
   virtual void checkCompatibility  () { throw Tcopy; }
@@ -150,4 +139,3 @@ protected:
  * c-basic-offset: 4
  * End:
  */
-
diff --git a/include/dynamic-graph/signal.t.cpp b/include/dynamic-graph/signal.t.cpp
index 6aa555e2f24ac903553baf130b86684c0dcf066f..1b0470560a8803a3664f0a1e39cd46a20f8b1a19 100644
--- a/include/dynamic-graph/signal.t.cpp
+++ b/include/dynamic-graph/signal.t.cpp
@@ -2,18 +2,6 @@
 // Copyright 2010, François Bleibel, Thomas Moulard, Olivier Stasse,
 // JRL, CNRS/AIST.
 //
-// This file is part of dynamic-graph.
-// dynamic-graph is free software: you can redistribute it and/or
-// modify it under the terms of the GNU Lesser General Public License
-// as published by the Free Software Foundation, either version 3 of
-// the License, or (at your option) any later version.
-//
-// dynamic-graph 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 Lesser Public License for more details.  You should have
-// received a copy of the GNU Lesser General Public License along with
-// dynamic-graph. If not, see <http://www.gnu.org/licenses/>.
 
 #ifndef DYNAMIC_GRAPH_SIGNAL_T_CPP
 # define DYNAMIC_GRAPH_SIGNAL_T_CPP
diff --git a/include/dynamic-graph/time-dependency.h b/include/dynamic-graph/time-dependency.h
index c79c2b696b94d55d882ba19ec498ef84b1bdcbf9..1505e90e1602bf42a46c49311afd0b2cc20007f2 100644
--- a/include/dynamic-graph/time-dependency.h
+++ b/include/dynamic-graph/time-dependency.h
@@ -2,18 +2,6 @@
 // Copyright 2010, François Bleibel, Thomas Moulard, Olivier Stasse,
 // JRL, CNRS/AIST.
 //
-// This file is part of dynamic-graph.
-// dynamic-graph is free software: you can redistribute it and/or
-// modify it under the terms of the GNU Lesser General Public License
-// as published by the Free Software Foundation, either version 3 of
-// the License, or (at your option) any later version.
-//
-// dynamic-graph 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 Lesser Public License for more details.  You should have
-// received a copy of the GNU Lesser General Public License along with
-// dynamic-graph. If not, see <http://www.gnu.org/licenses/>.
 
 #ifndef DYNAMIC_GRAPH_TIME_DEPENDENCY_H
 # define DYNAMIC_GRAPH_TIME_DEPENDENCY_H
diff --git a/include/dynamic-graph/time-dependency.t.cpp b/include/dynamic-graph/time-dependency.t.cpp
index 6199bb10d93985f44d0e15a0067bec6ed57cc33e..f9689574baaccb26f7dc2cb23bbc4ebf9725533c 100644
--- a/include/dynamic-graph/time-dependency.t.cpp
+++ b/include/dynamic-graph/time-dependency.t.cpp
@@ -2,18 +2,6 @@
 // Copyright 2010, François Bleibel, Thomas Moulard, Olivier Stasse,
 // JRL, CNRS/AIST.
 //
-// This file is part of dynamic-graph.
-// dynamic-graph is free software: you can redistribute it and/or
-// modify it under the terms of the GNU Lesser General Public License
-// as published by the Free Software Foundation, either version 3 of
-// the License, or (at your option) any later version.
-//
-// dynamic-graph 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 Lesser Public License for more details.  You should have
-// received a copy of the GNU Lesser General Public License along with
-// dynamic-graph. If not, see <http://www.gnu.org/licenses/>.
 
 #ifndef DYNAMIC_GRAPH_TIME_DEPENDENCY_T_CPP
 # define DYNAMIC_GRAPH_TIME_DEPENDENCY_T_CPP
diff --git a/include/dynamic-graph/tracer-real-time.h b/include/dynamic-graph/tracer-real-time.h
index 3db261b69b7a3be14dd7938c4e7d966f0855f7dc..b39b8a79b67ff2e05b1615f97277a7d18fab85fa 100644
--- a/include/dynamic-graph/tracer-real-time.h
+++ b/include/dynamic-graph/tracer-real-time.h
@@ -2,18 +2,6 @@
 // Copyright 2010, François Bleibel, Thomas Moulard, Olivier Stasse,
 // JRL, CNRS/AIST.
 //
-// This file is part of dynamic-graph.
-// dynamic-graph is free software: you can redistribute it and/or
-// modify it under the terms of the GNU Lesser General Public License
-// as published by the Free Software Foundation, either version 3 of
-// the License, or (at your option) any later version.
-//
-// dynamic-graph 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 Lesser Public License for more details.  You should have
-// received a copy of the GNU Lesser General Public License along with
-// dynamic-graph. If not, see <http://www.gnu.org/licenses/>.
 
 #ifndef DYNAMIC_GRAPH_TRACER_REAL_TIME_H
 # define DYNAMIC_GRAPH_TRACER_REAL_TIME_H
diff --git a/include/dynamic-graph/tracer.h b/include/dynamic-graph/tracer.h
index 386f4b238c303b4cf42da705008755b2745a24af..61a7f06bede65bb0ffe78095251ad3df97d0bc11 100644
--- a/include/dynamic-graph/tracer.h
+++ b/include/dynamic-graph/tracer.h
@@ -2,18 +2,6 @@
 // Copyright 2010, François Bleibel, Thomas Moulard, Olivier Stasse,
 // JRL, CNRS/AIST.
 //
-// This file is part of dynamic-graph.
-// dynamic-graph is free software: you can redistribute it and/or
-// modify it under the terms of the GNU Lesser General Public License
-// as published by the Free Software Foundation, either version 3 of
-// the License, or (at your option) any later version.
-//
-// dynamic-graph 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 Lesser Public License for more details.  You should have
-// received a copy of the GNU Lesser General Public License along with
-// dynamic-graph. If not, see <http://www.gnu.org/licenses/>.
 
 #ifndef DYNAMIC_GRAPH_TRACER_H
 # define DYNAMIC_GRAPH_TRACER_H
diff --git a/include/dynamic-graph/value.h b/include/dynamic-graph/value.h
index 14b8f472daba21085620f6916890c3b0efdfd604..13898666e3485578cc1c7b469d61675b441808e3 100644
--- a/include/dynamic-graph/value.h
+++ b/include/dynamic-graph/value.h
@@ -3,17 +3,6 @@
 //
 // Author: Florent Lamiraux
 //
-// This file is part of dynamic-graph.
-// dynamic-graph is free software: you can redistribute it and/or
-// modify it under the terms of the GNU Lesser General Public License
-// as published by the Free Software Foundation, either version 3 of
-// the License, or (at your option) any later version.
-// dynamic-graph 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 Lesser General Public License for more details.  You should
-// have received a copy of the GNU Lesser General Public License along
-// with dynamic-graph.  If not, see <http://www.gnu.org/licenses/>.
 
 #ifndef DYNAMIC_GRAPH_VALUE_H
 #define DYNAMIC_GRAPH_VALUE_H
@@ -112,7 +101,7 @@ namespace dynamicgraph {
     };
 
     /* ---- HELPER ---------------------------------------------------------- */
-    // Note: to ensure the WIN32 compatibility, it is necessary to export 
+    // Note: to ensure the WIN32 compatibility, it is necessary to export
     // the template specialization. Also, it is forbidden to do the template
     // specialization declaration in the header file, for the same reason.
     template< typename T >
diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
index 3e167370cb4079ec41cd6e3c64ec89627755f273..00054c99e6935415523dec8fed476bd23fdd785a 100644
--- a/src/CMakeLists.txt
+++ b/src/CMakeLists.txt
@@ -1,27 +1,5 @@
 # Copyright 2010, Olivier Stasse, JRL, CNRS/AIST
 #
-# This file is part of dynamic-graph.
-# dynamic-graph is free software: 
-# Redistribution and use in source and binary forms, with or without
-# modification, are permitted provided that the following conditions are met:
-#
-# * Redistributions of source code must retain the above copyright notice, this
-#   list of conditions and the following disclaimer.
-#
-# * Redistributions in binary form must reproduce the above copyright notice,
-#   this list of conditions and the following disclaimer in the documentation
-#   and/or other materials provided with the distribution.
-#
-# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-# DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
-# FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
-# SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
-# CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
-# OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 
 ####################################
 ### Main Library
@@ -41,6 +19,7 @@ ADD_LIBRARY(${LIBRARY_NAME}
   SHARED
   debug/debug.cpp
   debug/real-time-logger.cpp
+  debug/logger.cpp
 
   dgraph/entity.cpp
   dgraph/factory.cpp
diff --git a/src/command/command.cpp b/src/command/command.cpp
index 99fd8b776ad5aef59aa5fab634cfd20f3531b722..d38eddc271b5faed7a2a9f367e29d9b6e22eef7a 100644
--- a/src/command/command.cpp
+++ b/src/command/command.cpp
@@ -3,28 +3,6 @@
 //
 // Author: Florent Lamiraux
 //
-// This file is part of dynamic-graph.
-// dynamic-graph is free software:
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// * Redistributions of source code must retain the above copyright notice, this
-//   list of conditions and the following disclaimer.
-//
-// * Redistributions in binary form must reproduce the above copyright notice,
-//   this list of conditions and the following disclaimer in the documentation
-//   and/or other materials provided with the distribution.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-// DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
-// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
-// SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
-// CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
-// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 
 #include <sstream>
 #include "dynamic-graph/command.h"
diff --git a/src/command/value.cpp b/src/command/value.cpp
index bb32599d19a47cfafb33256d6cca641572e1c0ba..2dde1c3224d8c7cfdb4397c62184f517499446d3 100644
--- a/src/command/value.cpp
+++ b/src/command/value.cpp
@@ -3,28 +3,6 @@
 //
 // Author: Florent Lamiraux
 //
-// This file is part of dynamic-graph.
-// dynamic-graph is free software:
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// * Redistributions of source code must retain the above copyright notice, this
-//   list of conditions and the following disclaimer.
-//
-// * Redistributions in binary form must reproduce the above copyright notice,
-//   this list of conditions and the following disclaimer in the documentation
-//   and/or other materials provided with the distribution.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-// DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
-// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
-// SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
-// CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
-// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 
 
 #include "dynamic-graph/value.h"
diff --git a/src/debug/contiifstream.cpp b/src/debug/contiifstream.cpp
deleted file mode 100644
index 884ae8d3c99f3d16df05303d478fa2b037b5df9d..0000000000000000000000000000000000000000
--- a/src/debug/contiifstream.cpp
+++ /dev/null
@@ -1,83 +0,0 @@
-// Copyright 2010, François Bleibel, Thomas Moulard, Olivier Stasse,
-// JRL, CNRS/AIST.
-//
-// This file is part of dynamic-graph.
-// dynamic-graph is free software:
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// * Redistributions of source code must retain the above copyright notice, this
-//   list of conditions and the following disclaimer.
-//
-// * Redistributions in binary form must reproduce the above copyright notice,
-//   this list of conditions and the following disclaimer in the documentation
-//   and/or other materials provided with the distribution.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-// DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
-// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
-// SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
-// CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
-// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-#include <dynamic-graph/contiifstream.h>
-#include <dynamic-graph/debug.h>
-
-namespace dynamicgraph
-{
-  Contiifstream::Contiifstream (const std::string& n)
-    : filename (n),
-      cursor (0),
-      first (true)
-  {}
-
-  Contiifstream::~Contiifstream ()
-  {
-    dgDEBUGINOUT(5);
-  }
-
-  bool
-  Contiifstream::loop ()
-  {
-    dgDEBUGIN(25);
-
-    bool res = false;
-    std::fstream file (filename.c_str ());
-    file.seekg (cursor);
-    file.sync ();
-
-    while(1)
-      {
-	file.get (buffer,BUFFER_SIZE);
-	if (file.gcount ())
-	  {
-	    res = true;
-	    std::string line (buffer);
-	    if (! first)
-	      reader.push_back (line);
-	    cursor=file.tellg ();
-	    ++cursor;
-	    file.get (*buffer); // get the last char ( = '\n')
-	    dgDEBUG(15) << "line: "<< line<<std::endl;
-	  }
-	else
-	  break;
-      }
-
-    first = false;
-    dgDEBUGOUT(25);
-    return res;
-  }
-  
-  std::string
-  Contiifstream::next ()
-  {
-    std::string res = *reader.begin ();
-    reader.pop_front ();
-    return res;
-  }
-} // end of namespace dynamicgraph.
diff --git a/src/debug/debug.cpp b/src/debug/debug.cpp
index 935516f821b9f39ec78e90250aad22f3c5d81c07..4e3828c7bad8bd09a24121b68a5de2f7c48bb5f4 100644
--- a/src/debug/debug.cpp
+++ b/src/debug/debug.cpp
@@ -5,28 +5,6 @@
  *
  * CNRS/AIST
  *
- * This file is part of dynamic-graph.
- * dynamic-graph is free software:
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- *
- * * Redistributions of source code must retain the above copyright notice, this
- *   list of conditions and the following disclaimer.
- *
- * * Redistributions in binary form must reproduce the above copyright notice,
- *   this list of conditions and the following disclaimer in the documentation
- *   and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
- * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
- * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
- * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
- * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
 #include <dynamic-graph/debug.h>
@@ -83,4 +61,3 @@ void DebugTrace::closeFile(const char *)
 
 //DebugTrace dgDebugFLOW(std::cout);
 //DebugTrace dgERRORFLOW(std::cerr);
-
diff --git a/src/debug/logger.cpp b/src/debug/logger.cpp
new file mode 100644
index 0000000000000000000000000000000000000000..7aa01ccf7e0e9872013cb6425be0527bf7c95b0a
--- /dev/null
+++ b/src/debug/logger.cpp
@@ -0,0 +1,104 @@
+/*
+ * Copyright 2015, 2019
+ * LAAS-CNRS
+ * Andrea Del Prete, François Bailly, Olivier Stasse
+ *
+ */
+
+#ifndef WIN32
+#include <sys/time.h>
+#else
+#include <Windows.h>
+#endif
+#define ENABLE_RT_LOG
+
+#include <stdio.h>
+#include <iostream>
+#include <iomanip>      // std::setprecision
+#include <dynamic-graph/logger.h>
+
+#include <dynamic-graph/real-time-logger.h>
+
+namespace dynamicgraph
+{
+
+  using namespace std;
+
+  Logger::Logger(double timeSample, double streamPrintPeriod)
+    : m_timeSample(timeSample),
+      m_streamPrintPeriod(streamPrintPeriod),
+      m_printCountdown(0.0)
+  {
+    m_lv = VERBOSITY_ERROR;
+  }
+
+  Logger::~Logger()
+  {
+  }
+
+  void Logger::setVerbosity(LoggerVerbosity lv)
+  {
+    m_lv=lv;
+  }
+
+  LoggerVerbosity Logger::getVerbosity()
+  {
+    return m_lv;
+
+  }
+  void Logger::countdown()
+  {
+    if(m_printCountdown<0.0)
+      m_printCountdown = m_streamPrintPeriod;
+    m_printCountdown -= m_timeSample;
+  }
+
+  void Logger::sendMsg(string msg, MsgType type, const char* file, int line)
+  {
+    if(m_lv==VERBOSITY_NONE ||
+       (m_lv==VERBOSITY_ERROR && !isErrorMsg(type)) ||
+       (m_lv==VERBOSITY_WARNING_ERROR && !(isWarningMsg(type) || isErrorMsg(type))) ||
+       (m_lv==VERBOSITY_INFO_WARNING_ERROR && isDebugMsg(type)))
+      return;
+
+    // if print is allowed by current verbosity level
+    if(isStreamMsg(type))
+      {
+        // check whether counter already exists
+        string id = file+toString(line);
+        map<string,double>::iterator it = m_stream_msg_counters.find(id);
+        if(it == m_stream_msg_counters.end())
+	  {
+	    // if counter doesn't exist then add one
+	    m_stream_msg_counters.insert(make_pair(id, 0.0));
+	    it = m_stream_msg_counters.find(id);
+	  }
+
+        // if counter is greater than 0 then decrement it and do not print
+        if(it->second>0.0)
+	  {
+	    it->second -= m_timeSample;
+	    return;
+	  }
+        else  // otherwise reset counter and print
+          it->second = m_streamPrintPeriod;
+      }
+    dgRTLOG() << msg.c_str() << "\n";
+  }
+
+  bool Logger::setTimeSample(double t)
+  {
+    if(t<=0.0)
+      return false;
+    m_timeSample = t;
+    return true;
+  }
+
+  bool Logger::setStreamPrintPeriod(double s)
+  {
+    if(s<=0.0)
+      return false;
+    m_streamPrintPeriod = s;
+    return true;
+  }
+} // namespace dynamicgraph
diff --git a/src/debug/real-time-logger.cpp b/src/debug/real-time-logger.cpp
index 97ad576cbf3da2f3098be5291df0a45247f8def2..340738054f903b13fb8104b6569ed8b6c406d35c 100644
--- a/src/debug/real-time-logger.cpp
+++ b/src/debug/real-time-logger.cpp
@@ -4,17 +4,6 @@
  *
  * LAAS-CNRS
  *
- * This file is part of dynamic-graph.
- * dynamic-graph is free software: you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public License
- * as published by the Free Software Foundation, either version 3 of
- * the License, or (at your option) any later version.
- * dynamic-graph 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 Lesser General Public License for more details.  You should
- * have received a copy of the GNU Lesser General Public License along
- * with dynamic-graph.  If not, see <http://www.gnu.org/licenses/>.
  */
 
 #include <dynamic-graph/real-time-logger.h>
@@ -103,9 +92,9 @@ namespace dynamicgraph
         threadParam.sched_priority -= 5;
         if (threadParam.sched_priority < sched_get_priority_min (threadPolicy))
           threadParam.sched_priority = sched_get_priority_min (threadPolicy);
-         
+
         pthread_setschedparam (pthread_self(), threadPolicy, &threadParam);
-      } 
+      }
 
       while (!requestShutdown_ || !logger->empty())
       {
diff --git a/src/dgraph/entity.cpp b/src/dgraph/entity.cpp
index 1b5e128d93fcb6373ad541f315797ad54892c508..eb5bf597b060161b49110308e7a3c9ffa4f06941 100644
--- a/src/dgraph/entity.cpp
+++ b/src/dgraph/entity.cpp
@@ -5,28 +5,6 @@
  *
  * CNRS/AIST
  *
- * This file is part of dynamic-graph.
- * dynamic-graph is free software:
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- *
- * * Redistributions of source code must retain the above copyright notice, this
- *   list of conditions and the following disclaimer.
- *
- * * Redistributions in binary form must reproduce the above copyright notice,
- *   this list of conditions and the following disclaimer in the documentation
- *   and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
- * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
- * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
- * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
- * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
 /*! Local framework includes */
@@ -278,3 +256,11 @@ getNewStyleCommand( const std::string& commandName )
   return commandMap[commandName];
 }
 
+void Entity::
+sendMsg(const std::string &msg,
+	MsgType t,
+	const char *file,
+	int line)
+{
+  logger_.sendMsg("["+name+"]"+msg,t,file,line);
+}
diff --git a/src/dgraph/factory.cpp b/src/dgraph/factory.cpp
index 0504d1d3100dbca25201961bff3cdd6feb955862..9c10a6c9f77f0f5afd61d7b81fb782cc8849ac99 100644
--- a/src/dgraph/factory.cpp
+++ b/src/dgraph/factory.cpp
@@ -1,28 +1,6 @@
 // Copyright 2010, François Bleibel, Thomas Moulard, Olivier Stasse,
 // JRL, CNRS/AIST.
 //
-// This file is part of dynamic-graph.
-// dynamic-graph is free software:
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// * Redistributions of source code must retain the above copyright notice, this
-//   list of conditions and the following disclaimer.
-//
-// * Redistributions in binary form must reproduce the above copyright notice,
-//   this list of conditions and the following disclaimer in the documentation
-//   and/or other materials provided with the distribution.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-// DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
-// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
-// SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
-// CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
-// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 
 #include <boost/foreach.hpp>
 
diff --git a/src/dgraph/pool.cpp b/src/dgraph/pool.cpp
index de105970890a5ce09fbef854fe36049e3044c95b..0d240cfe0784f564b2b72b607cb62e35f42eed92 100644
--- a/src/dgraph/pool.cpp
+++ b/src/dgraph/pool.cpp
@@ -5,29 +5,6 @@
  *
  * CNRS/AIST
  *
- * This file is part of dynamic-graph.
- * dynamic-graph is free software:
- * Redistribution and use in source and binary forms,
- * with or without modification, are permitted provided that the following
- * conditions are met:
- * 1. Redistributions of source code must retain the above copyright notice,
- * this list of conditions and the following disclaimer.
- *
- * 2. Redistributions in binary form must reproduce the above copyright notice,
- * this list of conditions and the following disclaimer in the documentation
- * and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
- * AND ANY EXPRESS OR IMPLIED WARRANTIES,  * INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
- * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- * POSSIBILITY OF SUCH DAMAGE.
  */
 
 /* --------------------------------------------------------------------- */
@@ -295,4 +272,3 @@ getSignal( std::istringstream& sigpath )
 }
 
 PoolStorage* PoolStorage::instance_ = 0;
-
diff --git a/src/exception/exception-abstract.cpp b/src/exception/exception-abstract.cpp
index 895d70098cbfb7ed5e3119297dc74bd822974b8c..f1eb90dd0ed428c587d1c09372b4fb6a6503e04f 100644
--- a/src/exception/exception-abstract.cpp
+++ b/src/exception/exception-abstract.cpp
@@ -1,28 +1,6 @@
 // Copyright 2010, François Bleibel, Thomas Moulard, Olivier Stasse,
 // JRL, CNRS/AIST.
 //
-// This file is part of dynamic-graph.
-// dynamic-graph is free software:
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// * Redistributions of source code must retain the above copyright notice, this
-//   list of conditions and the following disclaimer.
-//
-// * Redistributions in binary form must reproduce the above copyright notice,
-//   this list of conditions and the following disclaimer in the documentation
-//   and/or other materials provided with the distribution.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-// DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
-// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
-// SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
-// CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
-// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 
 #include <cstring>
 #include <dynamic-graph/exception-abstract.h>
diff --git a/src/exception/exception-factory.cpp b/src/exception/exception-factory.cpp
index 523cea2631df99a8d982253237d67321e16d741b..96e925710c2de866b445eb599746c1c605c3c01c 100644
--- a/src/exception/exception-factory.cpp
+++ b/src/exception/exception-factory.cpp
@@ -5,28 +5,6 @@
  *
  * CNRS/AIST
  *
- * This file is part of dynamic-graph.
- * dynamic-graph is free software:
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- *
- * * Redistributions of source code must retain the above copyright notice, this
- *   list of conditions and the following disclaimer.
- *
- * * Redistributions in binary form must reproduce the above copyright notice,
- *   this list of conditions and the following disclaimer in the documentation
- *   and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
- * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
- * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
- * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
- * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
 #include <dynamic-graph/exception-factory.h>
diff --git a/src/exception/exception-signal.cpp b/src/exception/exception-signal.cpp
index 53d35d9ac660c6a0365f8965d45bf36f72a7b710..44ab17d7109e4d8a19485dddd3a49b90d651c27e 100644
--- a/src/exception/exception-signal.cpp
+++ b/src/exception/exception-signal.cpp
@@ -5,28 +5,6 @@
  *
  * CNRS/AIST
  *
- * This file is part of dynamic-graph.
- * dynamic-graph is free software:
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- *
- * * Redistributions of source code must retain the above copyright notice, this
- *   list of conditions and the following disclaimer.
- *
- * * Redistributions in binary form must reproduce the above copyright notice,
- *   this list of conditions and the following disclaimer in the documentation
- *   and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
- * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
- * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
- * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
- * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
 #include <dynamic-graph/exception-signal.h>
diff --git a/src/exception/exception-traces.cpp b/src/exception/exception-traces.cpp
index 0d15f8a793983e20e47fc070a90f00cb25ec798a..a02858182e5873c009b241d3e94973960261635f 100644
--- a/src/exception/exception-traces.cpp
+++ b/src/exception/exception-traces.cpp
@@ -5,28 +5,6 @@
  *
  * CNRS/AIST
  *
- * This file is part of dynamic-graph.
- * dynamic-graph is free software:
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- *
- * * Redistributions of source code must retain the above copyright notice, this
- *   list of conditions and the following disclaimer.
- *
- * * Redistributions in binary form must reproduce the above copyright notice,
- *   this list of conditions and the following disclaimer in the documentation
- *   and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
- * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
- * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
- * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
- * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
 #include <dynamic-graph/exception-traces.h>
diff --git a/src/signal/signal-array.cpp b/src/signal/signal-array.cpp
index 6dd75c9e2ddb4965ffe95afdf6684140802e6cba..02e8a00cee5631177ed7d504a46044908c3ffd42 100644
--- a/src/signal/signal-array.cpp
+++ b/src/signal/signal-array.cpp
@@ -5,28 +5,6 @@
  *
  * CNRS/AIST
  *
- * This file is part of dynamic-graph.
- * dynamic-graph is free software:
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- *
- * * Redistributions of source code must retain the above copyright notice, this
- *   list of conditions and the following disclaimer.
- *
- * * Redistributions in binary form must reproduce the above copyright notice,
- *   this list of conditions and the following disclaimer in the documentation
- *   and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
- * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
- * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
- * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
- * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 */
 
 #include <dynamic-graph/signal-array.h>
diff --git a/src/signal/signal-cast-helper.cpp b/src/signal/signal-cast-helper.cpp
index a483fa0d6deb777feabf26a0f787795afc0f6756..dc3d9bca45ea526ede9041599990b96f46b6515f 100644
--- a/src/signal/signal-cast-helper.cpp
+++ b/src/signal/signal-cast-helper.cpp
@@ -1,28 +1,6 @@
 // -*- c++-mode -*-
 // Copyright 2010 François Bleibel Thomas Moulard, Olivier Stasse, Nicolas Mansard
 //
-// This file is part of dynamic-graph.
-// dynamic-graph is free software:
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// * Redistributions of source code must retain the above copyright notice, this
-//   list of conditions and the following disclaimer.
-//
-// * Redistributions in binary form must reproduce the above copyright notice,
-//   this list of conditions and the following disclaimer in the documentation
-//   and/or other materials provided with the distribution.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-// DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
-// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
-// SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
-// CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
-// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 
 #include <boost/date_time/posix_time/posix_time.hpp>
 #include <dynamic-graph/signal-caster.h>
diff --git a/src/signal/signal-caster.cpp b/src/signal/signal-caster.cpp
index 410b75e2bbe89c055a536545f060f1087b104489..b8cac844f1e28dd6e64a64f7fbe77951606f3197 100644
--- a/src/signal/signal-caster.cpp
+++ b/src/signal/signal-caster.cpp
@@ -1,28 +1,6 @@
 // -*- c++-mode -*-
 // Copyright 2010 François Bleibel Thomas Moulard, Olivier Stasse
 //
-// This file is part of dynamic-graph.
-// dynamic-graph is free software:
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// * Redistributions of source code must retain the above copyright notice, this
-//   list of conditions and the following disclaimer.
-//
-// * Redistributions in binary form must reproduce the above copyright notice,
-//   this list of conditions and the following disclaimer in the documentation
-//   and/or other materials provided with the distribution.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-// DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
-// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
-// SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
-// CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
-// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 
 #include <dynamic-graph/signal-caster.h>
 #include <dynamic-graph/dynamic-graph-api.h>
diff --git a/src/traces/tracer-real-time.cpp b/src/traces/tracer-real-time.cpp
index b70249f4c579bae199f3afcf1587fb88b4b52d0b..cc7abf083ae7c319749fc563a773d4161e7f408c 100644
--- a/src/traces/tracer-real-time.cpp
+++ b/src/traces/tracer-real-time.cpp
@@ -5,28 +5,6 @@
  *
  * CNRS/AIST
  *
- * This file is part of dynamic-graph.
- * dynamic-graph is free software:
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- *
- * * Redistributions of source code must retain the above copyright notice, this
- *   list of conditions and the following disclaimer.
- *
- * * Redistributions in binary form must reproduce the above copyright notice,
- *   this list of conditions and the following disclaimer in the documentation
- *   and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
- * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
- * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
- * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
- * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
 /* --------------------------------------------------------------------- */
diff --git a/src/traces/tracer.cpp b/src/traces/tracer.cpp
index 9ad0eef5a420a85814c2bab1f8fb91d6bf3d7653..3d2b97825f5cc9ff7dd0714dcdbe4d5c5eb2e4a2 100644
--- a/src/traces/tracer.cpp
+++ b/src/traces/tracer.cpp
@@ -5,28 +5,6 @@
  *
  * CNRS/AIST
  *
- * This file is part of dynamic-graph.
- * dynamic-graph is free software:
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- *
- * * Redistributions of source code must retain the above copyright notice, this
- *   list of conditions and the following disclaimer.
- *
- * * Redistributions in binary form must reproduce the above copyright notice,
- *   this list of conditions and the following disclaimer in the documentation
- *   and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
- * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
- * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
- * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
- * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
 /* --------------------------------------------------------------------- */
diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt
index 36cd5d1c10c726da06c51bc1ee8e76af2879832c..c9cebb2c7d86f6d01bc5b5e889b0bba2303013e0 100644
--- a/tests/CMakeLists.txt
+++ b/tests/CMakeLists.txt
@@ -1,17 +1,5 @@
 # Copyright 2010, Olivier Stasse, JRL, CNRS/AIST
 #
-# This file is part of dynamic-graph.
-# dynamic-graph is free software: you can redistribute it and/or
-# modify it under the terms of the GNU Lesser General Public License
-# as published by the Free Software Foundation, either version 3 of
-# the License, or (at your option) any later version.
-#
-# dynamic-graph 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 Lesser Public License for more details.  You should have
-# received a copy of the GNU Lesser General Public License along with
-# dynamic-graph. If not, see <http://www.gnu.org/licenses/>.
 
 ADD_DEFINITIONS(-DDEBUG=2)
 
@@ -68,3 +56,6 @@ DYNAMIC_GRAPH_TEST(signal-time-dependent)
 DYNAMIC_GRAPH_TEST(value)
 DYNAMIC_GRAPH_TEST(signal-ptr)
 DYNAMIC_GRAPH_TEST(real-time-logger)
+DYNAMIC_GRAPH_TEST(debug-trace)
+DYNAMIC_GRAPH_TEST(debug-tracer)
+TARGET_LINK_LIBRARIES(debug-tracer tracer)
diff --git a/tests/custom-entity.cpp b/tests/custom-entity.cpp
index 31b523a00f91bf4e3d64d68f8a4ba788b027a7ef..e7448267f4467397be1c6d148eca8a71d8a7889c 100644
--- a/tests/custom-entity.cpp
+++ b/tests/custom-entity.cpp
@@ -1,17 +1,5 @@
 // Copyright 2010 Thomas Moulard.
 //
-// This file is part of dynamic-graph.
-// dynamic-graph is free software: you can redistribute it and/or modify
-// it under the terms of the GNU Lesser General Public License as published by
-// the Free Software Foundation, either version 3 of the License, or
-// (at your option) any later version.
-//
-// dynamic-graph 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 Lesser General Public License for more details.
-// You should have received a copy of the GNU Lesser General Public License
-// along with dynamic-graph.  If not, see <http://www.gnu.org/licenses/>.
 
 #include <sstream>
 #include <dynamic-graph/factory.h>
@@ -81,4 +69,3 @@ BOOST_AUTO_TEST_CASE (display)
   // Deregister entities before destroying them
   dynamicgraph::PoolStorage::destroy();
 }
-
diff --git a/tests/debug-trace.cpp b/tests/debug-trace.cpp
new file mode 100644
index 0000000000000000000000000000000000000000..a3907849801bd466f5beab6aed3338b61b9dd993
--- /dev/null
+++ b/tests/debug-trace.cpp
@@ -0,0 +1,107 @@
+/* Copyright 2019, LAAS-CNRS
+ *
+ * Olivier Stasse
+ *
+ */
+#include <sstream>
+#include <iostream>
+#include <dynamic-graph/entity.h>
+#include <dynamic-graph/exception-factory.h>
+#include "dynamic-graph/factory.h"
+#include "dynamic-graph/pool.h"
+
+#define VP_DEBUG 1
+#define VP_DEBUG_MODE 50
+#define VP_TEMPLATE_DEBUG_MODE 50
+
+
+#include <dynamic-graph/debug.h>
+
+#define BOOST_TEST_MODULE debug-trace
+
+#include <boost/test/unit_test.hpp>
+#include <boost/test/output_test_stream.hpp>
+
+using boost::test_tools::output_test_stream;
+
+
+namespace dynamicgraph
+{
+  class CustomEntity : public Entity
+  {
+  public:
+    static const std::string CLASS_NAME;
+    virtual const std::string& getClassName () const
+    {
+      return CLASS_NAME;
+    }
+    CustomEntity (const std::string n)
+      : Entity (n)
+    {
+      dynamicgraph::dgDEBUGFLOW.openFile("/tmp/dynamic-graph-traces.txt");
+    }
+    ~CustomEntity()
+    {
+      dynamicgraph::dgDEBUGFLOW.closeFile("/tmp/dynamic-graph-traces.txt");
+    }
+    void testDebugTrace()
+    {
+      /// Test debugging information when entering the code.
+      dgDEBUGIN(5);
+
+      /// Intermediate test.
+      dgDEBUGINOUT(5);
+
+      dgDEBUG(5) << "Here is a test" << std::endl;
+
+      /// Test debugging information when going out of the code.
+      dgDEBUGOUT(5);
+    }
+  };
+  DYNAMICGRAPH_FACTORY_ENTITY_PLUGIN (CustomEntity,"CustomEntity");
+}
+
+BOOST_AUTO_TEST_CASE(testDebugTrace)
+{
+
+
+  BOOST_CHECK_EQUAL (dynamicgraph::CustomEntity::CLASS_NAME, "CustomEntity");
+
+  dynamicgraph::CustomEntity& entity = *(dynamic_cast<dynamicgraph::CustomEntity *>(
+    dynamicgraph::FactoryStorage::getInstance()->newEntity("CustomEntity",
+							   "my-entity")));
+  entity.testDebugTrace();
+
+  /// Copy the debug file into the oss_debug_file
+  output_test_stream output;
+  std::fstream the_debug_file;
+  the_debug_file.open(dynamicgraph::DebugTrace::DEBUG_FILENAME_DEFAULT,
+		      std::ios::in );
+
+  // Extract the filename and this source file from the output
+  std::string astr;
+  std::ostringstream oss_debug_file;
+  while(std::getline(the_debug_file,astr))
+    {
+      std::size_t found=astr.find(":");
+      std::string asubstr = astr.substr(found+1,astr.length());
+      found = asubstr.find(":");
+      std::string asubstr2 = asubstr.substr(found+1,astr.length());
+      oss_debug_file << asubstr2;
+    }
+
+  the_debug_file.close();
+
+  // Compare with the strings put inside this source file
+  std::string str_to_test =  "# In {"
+    "# In/Out { }"
+    "Here is a test"
+    "# Out }";
+  bool two_sub_string_identical;
+
+  // Make comparisons.
+  two_sub_string_identical = str_to_test == oss_debug_file.str();
+
+  BOOST_CHECK(two_sub_string_identical);
+
+}
diff --git a/tests/debug-tracer.cpp b/tests/debug-tracer.cpp
new file mode 100644
index 0000000000000000000000000000000000000000..8bf547d538434172ab0880d1ff025c6941218117
--- /dev/null
+++ b/tests/debug-tracer.cpp
@@ -0,0 +1,117 @@
+/* Copyright 2019, LAAS-CNRS
+ *
+ * Olivier Stasse
+ *
+ */
+
+#include <iostream>
+
+#include <dynamic-graph/entity.h>
+#include <dynamic-graph/exception-factory.h>
+#include <dynamic-graph/factory.h>
+#include <dynamic-graph/pool.h>
+#include <dynamic-graph/signal-ptr.h>
+#include <dynamic-graph/signal-time-dependent.h>
+#include <dynamic-graph/tracer.h>
+
+#define BOOST_TEST_MODULE debug-tracer
+
+#include <boost/test/unit_test.hpp>
+#include <boost/test/output_test_stream.hpp>
+
+namespace dynamicgraph
+{
+  struct MyEntity : public dynamicgraph::Entity
+  {
+    static const std::string CLASS_NAME;
+
+    dynamicgraph::Signal<double, int> m_sigdSIN;
+    dynamicgraph::SignalTimeDependent<double, int> m_sigdTimeDepSOUT;
+    dynamicgraph::SignalTimeDependent<double, int> m_sigdTwoTimeDepSOUT;
+
+    MyEntity (const std::string& name)
+      : Entity (name)
+      ,m_sigdSIN("MyEntity("+name+")::input(double)::in_double")
+      ,m_sigdTimeDepSOUT(boost::bind(&MyEntity::update,this,_1,_2),
+			 m_sigdSIN,
+			 "MyEntity("+name+")::input(double)::out_double")
+      ,m_sigdTwoTimeDepSOUT(boost::bind(&MyEntity::update,this,_1,_2),
+			    m_sigdSIN,
+			    "MyEntity("+name+")::input(double)::out2double")
+
+    {
+      signalRegistration(m_sigdSIN
+			 << m_sigdTimeDepSOUT
+			 << m_sigdTwoTimeDepSOUT);
+    }
+
+    virtual void display (std::ostream& os) const
+    {
+      os << "Hello! My name is " << getName () << " !" << std::endl;
+    }
+
+    virtual const std::string& getClassName () const
+    {
+      return CLASS_NAME;
+    }
+
+    double & update(double &res, const int &inTime)
+    {
+      const double &aDouble = m_sigdSIN(inTime);
+      res = aDouble;
+      return res;
+    }
+
+  };
+  DYNAMICGRAPH_FACTORY_ENTITY_PLUGIN (MyEntity,"MyEntity");
+}
+
+BOOST_AUTO_TEST_CASE(test_tracer)
+{
+
+  // Creates a tracer.
+  dynamicgraph::Tracer & atracer =
+    *dynamic_cast<dynamicgraph::Tracer *>
+    (dynamicgraph::FactoryStorage::getInstance()->newEntity("Tracer",
+							    "my-tracer"));
+
+  dynamicgraph::Entity & entity =
+    *dynamicgraph::FactoryStorage::getInstance()->newEntity("MyEntity",
+							    "my-entity");
+
+  /// Add trace by name
+  atracer.addSignalToTraceByName("my-entity.out_double","output");
+
+
+  dynamicgraph::SignalBase<int> & aSignal =
+    entity.getSignal("out2double");
+
+  dynamicgraph::Signal<double,int> & aSignalInt =
+    *(dynamic_cast<dynamicgraph::Signal<double,int> *>
+      (& entity.getSignal("in_double")));
+
+  /// Add trace by signal object
+  atracer.addSignalToTrace(aSignal,"output2");
+
+  aSignalInt.setConstant(1.5);
+
+  std::string rootdir("/tmp");
+  std::string basename("my-tracer");
+  std::string suffix(".dat");
+
+  /// Test openfiles
+  atracer.openFiles(rootdir,basename,suffix);
+
+  atracer.start();
+
+  for(int i=0;i<1000;i++)
+    {
+      aSignal.setTime(i);
+      aSignalInt.setTime(i);
+      atracer.recordTrigger(i,i);
+    }
+
+  atracer.stop();
+
+  atracer.closeFiles();
+}
diff --git a/tests/entity.cpp b/tests/entity.cpp
index eb15d6319d8637aae1b692d40eb85f3f0ec88ef9..7e4a5d091496b34e31ef71a2091e3e5713b16dc6 100644
--- a/tests/entity.cpp
+++ b/tests/entity.cpp
@@ -1,23 +1,18 @@
-// Copyright 2010 Thomas Moulard.
-//
-// This file is part of dynamic-graph.
-// dynamic-graph is free software: you can redistribute it and/or modify
-// it under the terms of the GNU Lesser General Public License as published by
-// the Free Software Foundation, either version 3 of the License, or
-// (at your option) any later version.
-//
-// dynamic-graph 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 Lesser General Public License for more details.
-// You should have received a copy of the GNU Lesser General Public License
-// along with dynamic-graph.  If not, see <http://www.gnu.org/licenses/>.
+/* Copyright 2010-2019 LAAS, CNRS
+ * Thomas Moulard.
+ *
+ */
+
+#define ENABLE_RT_LOG
 
 #include <sstream>
 #include <dynamic-graph/entity.h>
 #include <dynamic-graph/exception-factory.h>
 #include "dynamic-graph/factory.h"
 #include "dynamic-graph/pool.h"
+#include <dynamic-graph/real-time-logger.h>
+#include <dynamic-graph/signal-ptr.h>
+#include <dynamic-graph/signal-time-dependent.h>
 
 #define BOOST_TEST_MODULE entity
 
@@ -31,6 +26,9 @@ namespace dynamicgraph
   class CustomEntity : public Entity
   {
   public:
+    dynamicgraph::SignalPtr<double, int> m_sigdSIN;
+    dynamicgraph::SignalTimeDependent<double, int> m_sigdTimeDepSOUT;
+
     static const std::string CLASS_NAME;
     virtual const std::string& getClassName () const
     {
@@ -38,8 +36,32 @@ namespace dynamicgraph
     }
     CustomEntity (const std::string n)
       : Entity (n)
+      ,m_sigdSIN(NULL,"CustomEntity("+name+")::input(double)::in_double")
+      ,m_sigdTimeDepSOUT(boost::bind(&CustomEntity::update,this,_1,_2),
+			 m_sigdSIN,
+			 "CustomEntity("+name+")::input(double)::out_double")
+
+    {
+    }
+
+    void addSignal()
+    {
+      signalRegistration(m_sigdSIN << m_sigdTimeDepSOUT);
+    }
+
+    void rmValidSignal()
     {
+      signalDeregistration("in_double");
+      signalDeregistration("out_double");
     }
+
+    double & update(double &res, const int &inTime)
+    {
+      const double &aDouble = m_sigdSIN(inTime);
+      res = aDouble;
+      return res;
+    }
+
   };
   DYNAMICGRAPH_FACTORY_ENTITY_PLUGIN (CustomEntity,"CustomEntity");
 }
@@ -88,6 +110,23 @@ BOOST_AUTO_TEST_CASE (signal)
       BOOST_CHECK_EQUAL (exception.getCode (),
 			 dynamicgraph::ExceptionFactory::UNREFERED_SIGNAL);
     }
+  // deregistration
+  try
+    {
+      dynamicgraph::CustomEntity * customEntity =
+	dynamic_cast<dynamicgraph::CustomEntity *>(&entity);
+      customEntity->addSignal();
+      // Removing signals is working the first time
+      customEntity->rmValidSignal();
+      // Removing signals generates an exception the second time.
+      customEntity->rmValidSignal();
+      BOOST_ERROR ("Should never happen.");
+    }
+  catch (const dynamicgraph::ExceptionFactory& exception)
+    {
+      BOOST_CHECK_EQUAL (exception.getCode (),
+			 dynamicgraph::ExceptionFactory::UNREFERED_SIGNAL);
+    }
 }
 
 BOOST_AUTO_TEST_CASE (displaySignalList)
@@ -137,9 +176,48 @@ BOOST_AUTO_TEST_CASE (writeCompletionList)
     dynamicgraph::PoolStorage::getInstance()->getEntity("my-entity");
 
   output_test_stream output;
-  entity.writeGraph (output);
+  entity.writeCompletionList (output);
+
+  BOOST_CHECK (output.is_equal ("print\nsignals\nsignalDep\n"));
+}
+
+BOOST_AUTO_TEST_CASE (sendMsg)
+{
+  std::ofstream of;
+  of.open("/tmp/dg-LOGS.txt",std::ofstream::out|std::ofstream::app);
+  dgADD_OSTREAM_TO_RTLOG(of);
+
+  dynamicgraph::Entity& entity =
+    dynamicgraph::PoolStorage::getInstance()->getEntity("my-entity");
+
+  output_test_stream output;
+
+  for(unsigned int i=0;
+      i<4;
+      i++)
+    {
+      for(unsigned int j=0;j<2000;j++)
+	{
+	  dynamicgraph::LoggerVerbosity aLoggerVerbosityLevel=
+	    (dynamicgraph::LoggerVerbosity) i;
+	  entity.setLoggerVerbosityLevel(aLoggerVerbosityLevel);
+	  if (entity.getLoggerVerbosityLevel()!=aLoggerVerbosityLevel)
+	    output << "Mismatch output";
+
+	  std::string aBaseMsg="Auto Test Case";
+	  std::string aMsg=aBaseMsg+" DEBUG";
+	  entity.sendMsg(aMsg, dynamicgraph::MSG_TYPE_DEBUG, __FILE__, __LINE__);
+	  aMsg=aBaseMsg+" INFO";
+	  entity.sendMsg(aMsg, dynamicgraph::MSG_TYPE_INFO, __FILE__, __LINE__);
+	  aMsg=aBaseMsg+" WARNING";
+	  entity.sendMsg(aMsg, dynamicgraph::MSG_TYPE_WARNING, __FILE__, __LINE__);
+	  aMsg=aBaseMsg+" DEBUG";
+	  entity.sendMsg(aMsg, dynamicgraph::MSG_TYPE_ERROR, __FILE__, __LINE__);
+	};
+    };
 
   BOOST_CHECK (output.is_equal (""));
+  dynamicgraph::RealTimeLogger::destroy();
 }
 
 // WTF?
diff --git a/tests/factory.cpp b/tests/factory.cpp
index fbc5683be2e9f5e5588a1a7ea669bca2b6650f7a..5fbeb4f6350434d9ecf54aefa75a18ca7c081208 100644
--- a/tests/factory.cpp
+++ b/tests/factory.cpp
@@ -1,17 +1,5 @@
 // Copyright 2010 Thomas Moulard.
 //
-// This file is part of dynamic-graph.
-// dynamic-graph is free software: you can redistribute it and/or modify
-// it under the terms of the GNU Lesser General Public License as published by
-// the Free Software Foundation, either version 3 of the License, or
-// (at your option) any later version.
-//
-// dynamic-graph 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 Lesser General Public License for more details.
-// You should have received a copy of the GNU Lesser General Public License
-// along with dynamic-graph.  If not, see <http://www.gnu.org/licenses/>.
 
 #include <sstream>
 #include <dynamic-graph/factory.h>
diff --git a/tests/interpreter-tracer.cpp b/tests/interpreter-tracer.cpp
index d314fbea0e588b816295600a8bb33ec3ab0c0662..f514b87e984f5bd0e2b3354cd031d8d658152b24 100644
--- a/tests/interpreter-tracer.cpp
+++ b/tests/interpreter-tracer.cpp
@@ -1,17 +1,5 @@
 // Copyright 2010 Thomas Moulard.
 //
-// This file is part of dynamic-graph.
-// dynamic-graph is free software: you can redistribute it and/or modify
-// it under the terms of the GNU Lesser General Public License as published by
-// the Free Software Foundation, either version 3 of the License, or
-// (at your option) any later version.
-//
-// dynamic-graph 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 Lesser General Public License for more details.
-// You should have received a copy of the GNU Lesser General Public License
-// along with dynamic-graph.  If not, see <http://www.gnu.org/licenses/>.
 
 #include <sstream>
 #include <dynamic-graph/exception-factory.h>
diff --git a/tests/pool.cpp b/tests/pool.cpp
index 0e906702359bd0bbbd236cb5f390836416644954..9ea3b2da88211e4df5fb7fd1a2ea95f042944f9b 100644
--- a/tests/pool.cpp
+++ b/tests/pool.cpp
@@ -1,23 +1,14 @@
 // Copyright 2010 Thomas Moulard.
 //
-// This file is part of dynamic-graph.
-// dynamic-graph is free software: you can redistribute it and/or modify
-// it under the terms of the GNU Lesser General Public License as published by
-// the Free Software Foundation, either version 3 of the License, or
-// (at your option) any later version.
-//
-// dynamic-graph 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 Lesser General Public License for more details.
-// You should have received a copy of the GNU Lesser General Public License
-// along with dynamic-graph.  If not, see <http://www.gnu.org/licenses/>.
 
 #include <sstream>
+#include <iostream>
 #include <dynamic-graph/entity.h>
 #include <dynamic-graph/factory.h>
 #include <dynamic-graph/exception-factory.h>
 #include <dynamic-graph/pool.h>
+#include <dynamic-graph/signal-ptr.h>
+#include <dynamic-graph/signal-time-dependent.h>
 
 #define BOOST_TEST_MODULE pool
 
@@ -30,9 +21,18 @@ struct MyEntity : public dynamicgraph::Entity
 {
   static const std::string CLASS_NAME;
 
+  dynamicgraph::SignalPtr<double, int> m_sigdSIN;
+  dynamicgraph::SignalTimeDependent<double, int> m_sigdTimeDepSOUT;
+
   MyEntity (const std::string& name)
     : Entity (name)
-  {}
+    ,m_sigdSIN(NULL,"MyEntity("+name+")::input(double)::in_double")
+    ,m_sigdTimeDepSOUT(boost::bind(&MyEntity::update,this,_1,_2),
+		       m_sigdSIN,
+		       "MyEntity("+name+")::input(double)::out_double")
+  {
+    signalRegistration(m_sigdSIN << m_sigdTimeDepSOUT);
+  }
 
   virtual void display (std::ostream& os) const
   {
@@ -43,22 +43,162 @@ struct MyEntity : public dynamicgraph::Entity
   {
     return CLASS_NAME;
   }
+
+  double & update(double &res, const int &inTime)
+  {
+    const double &aDouble = m_sigdSIN(inTime);
+    res = aDouble;
+    return res;
+  }
+
 };
 
 DYNAMICGRAPH_FACTORY_ENTITY_PLUGIN (MyEntity, "MyEntity");
 
+namespace dg = dynamicgraph;
 BOOST_AUTO_TEST_CASE (pool_display)
 {
-  dynamicgraph::Entity* entity =
-    dynamicgraph::FactoryStorage::getInstance()->
+  /// Create Entity
+  dg::Entity* entity =
+    dg::FactoryStorage::getInstance()->
     newEntity("MyEntity", "MyEntityInst");
 
+  /// Test exception catching when registering Entity
+  bool res=false;
+  try {
+    dg::Entity* entity2 =
+      dg::FactoryStorage::getInstance()->
+      newEntity("MyEntity", "MyEntityInst");
+
+    bool res2 = (entity2==entity);
+    BOOST_CHECK(res2);
+  }
+  catch (const dg::ExceptionFactory &aef)
+    {
+      res =(aef.getCode()==dg::ExceptionFactory::OBJECT_CONFLICT);
+    }
+  BOOST_CHECK(res);
+
+  /// Test exception catching when deregistering Entity
+  res=false;
+  try {
+    dg::FactoryStorage::getInstance()->
+      deregisterEntity("MyEntityInstFailure");
+  }
+  catch (const dg::ExceptionFactory &aef)
+    {
+      res =(aef.getCode()==dg::ExceptionFactory::OBJECT_CONFLICT);
+    }
+  BOOST_CHECK(res);
+
+  /// Search for an entity inside the map
   output_test_stream output;
-  dynamicgraph::Entity& e = dynamicgraph::PoolStorage::getInstance()->getEntity
+  dg::Entity& e = dg::PoolStorage::getInstance()->getEntity
     ("MyEntityInst");
   e.display(output);
   BOOST_CHECK (output.is_equal ("Hello! My name is MyEntityInst !\n"));
-  dynamicgraph::PoolStorage::getInstance()->deregisterEntity
+
+  /// Search for an entity inside the map
+  res=false;
+  try
+    {
+      dg::PoolStorage::getInstance()->getEntity
+	("MyEntityInstFailure");
+    }
+  catch (const dg::ExceptionFactory &aef)
+    {
+      res =(aef.getCode()==dg::ExceptionFactory::UNREFERED_OBJECT);
+    }
+  BOOST_CHECK (res);
+
+  /// Testing entityMap
+  const dg::PoolStorage::Entities& anEntityMap =
+    dg::PoolStorage::getInstance()->getEntityMap();
+
+  bool testExistence = anEntityMap.find("MyEntityInst")==anEntityMap.end();
+  BOOST_CHECK(!testExistence);
+
+  /// Testing the existence of an entity
+  testExistence = dg::PoolStorage::getInstance()->existEntity
+    ("MyEntityInst",entity);
+
+  BOOST_CHECK(testExistence);
+
+  /// Testing the completion list of pool storage
+  dg::PoolStorage::getInstance()->writeCompletionList
+    (output);
+  BOOST_CHECK (output.is_equal ("MyEntityInst.in_double\nMyEntityInst.out_double\nprint\nsignals\nsignalDep\n"));
+
+  /// Checking the graph generated by the pool
+  dg::PoolStorage::getInstance()->writeGraph("output.dot");
+  std::fstream the_debug_file;
+  the_debug_file.open("output.dot");
+  std::ostringstream oss_output_wgph;
+  oss_output_wgph << the_debug_file.rdbuf();
+  the_debug_file.close();
+
+  /// Use a predefined output
+  std::string str_to_test="/* This graph has been automatically generated.\n"
+			      "   2019 Month: 2 Day: 28 Time: 11:28 */\n"
+			      "digraph \"output\" { 	 graph [ label=\"output\" bgcolor = white rankdir=LR ]\n"
+			      "\t node [ fontcolor = black, color = black, fillcolor = gold1, style=filled, shape=box ] ; \n"
+			      "\tsubgraph cluster_Entities { \n"
+			      "\t} \n"
+			      "\"MyEntityInst\" [ label = \"MyEntityInst\" ,\n"
+			      "   fontcolor = black, color = black, fillcolor=cyan, style=filled, shape=box ]\n"
+    "}\n";
+
+  /// Check the two substring (remove the date) -
+  std::string s_output_wgph = oss_output_wgph.str();
+  std::string s_crmk="*/";
+
+  std::size_t find_s_output_wgph = s_output_wgph.find(s_crmk);
+  std::string sub_s_output_wgph =s_output_wgph.substr(find_s_output_wgph, s_output_wgph.length());
+  std::size_t find_str_to_test = str_to_test.find(s_crmk);
+  std::string sub_str_to_test =str_to_test.substr(find_str_to_test, str_to_test.length());
+
+  bool two_sub_string_identical;
+  two_sub_string_identical=sub_str_to_test==sub_s_output_wgph;
+
+  BOOST_CHECK(two_sub_string_identical);
+
+  /// Test name of a valid signal.
+  std::istringstream an_iss("MyEntityInst.in_double");
+
+  dg::SignalBase<int> &aSignal=
+    dg::PoolStorage::getInstance()->getSignal(an_iss);
+
+  std::string aSignalName=aSignal.getName();
+  testExistence = aSignalName=="MyEntity(MyEntityInst)::input(double)::in_double";
+  BOOST_CHECK(testExistence);
+
+  /// Test name of an unvalid signal.
+  an_iss.str("MyEntityInst.in2double");
+
+  try {
+    dg::PoolStorage::getInstance()->getSignal(an_iss);
+  }
+  catch(const dg::ExceptionFactory &aef)
+    {
+      res =(aef.getCode()==dg::ExceptionFactory::UNREFERED_SIGNAL);
+    }
+  BOOST_CHECK(res);
+
+
+  /// Deregister the entity.
+  dg::PoolStorage::getInstance()->deregisterEntity
     (entity->getName());
-  dynamicgraph::PoolStorage::destroy();
+
+  /// Testing the existance of an entity
+  testExistence = dg::PoolStorage::getInstance()->existEntity
+    ("MyEntityInst",entity);
+
+  BOOST_CHECK(!testExistence);
+
+  /// Create Entity
+  std::string name_entity("MyEntityInst2");
+  dg::PoolStorage::getInstance()->
+    clearPlugin(name_entity);
+
+  dg::PoolStorage::destroy();
 }
diff --git a/tests/real-time-logger.cpp b/tests/real-time-logger.cpp
index c96b15644123b50844eea72b86e95dba8ae74303..eb5b7e1c7bfafa35b06efb3a18f504fe3bf5956b 100644
--- a/tests/real-time-logger.cpp
+++ b/tests/real-time-logger.cpp
@@ -4,17 +4,6 @@
  *
  * LAAS-CNRS
  *
- * This file is part of dynamic-graph.
- * dynamic-graph is free software: you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public License
- * as published by the Free Software Foundation, either version 3 of
- * the License, or (at your option) any later version.
- * dynamic-graph 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 Lesser General Public License for more details.  You should
- * have received a copy of the GNU Lesser General Public License along
- * with dynamic-graph.  If not, see <http://www.gnu.org/licenses/>.
  */
 
 #include <iostream>
diff --git a/tests/signal-cast-registerer-libA.cpp b/tests/signal-cast-registerer-libA.cpp
index b403e89456416b4b1495235e46aa15cfc7a9e6d7..ffd30daca97224f9d9a20a84a419a9ab4d2d55ca 100644
--- a/tests/signal-cast-registerer-libA.cpp
+++ b/tests/signal-cast-registerer-libA.cpp
@@ -1,17 +1,5 @@
 // Copyright 2010 Thomas Moulard.
 //
-// This file is part of dynamic-graph.
-// dynamic-graph is free software: you can redistribute it and/or modify
-// it under the terms of the GNU Lesser General Public License as published by
-// the Free Software Foundation, either version 3 of the License, or
-// (at your option) any later version.
-//
-// dynamic-graph 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 Lesser General Public License for more details.
-// You should have received a copy of the GNU Lesser General Public License
-// along with dynamic-graph.  If not, see <http://www.gnu.org/licenses/>.
 
 #include "signal-cast-registerer-libA.hh"
 
diff --git a/tests/signal-cast-registerer-libA.hh b/tests/signal-cast-registerer-libA.hh
index f0065e224f434fc72190f2ff49efa82a5e8bd37f..d4a940c12f2cb0686730842f5eba35b2e01c56d3 100644
--- a/tests/signal-cast-registerer-libA.hh
+++ b/tests/signal-cast-registerer-libA.hh
@@ -1,17 +1,5 @@
 // Copyright 2010 Thomas Moulard.
 //
-// This file is part of dynamic-graph.
-// dynamic-graph is free software: you can redistribute it and/or modify
-// it under the terms of the GNU Lesser General Public License as published by
-// the Free Software Foundation, either version 3 of the License, or
-// (at your option) any later version.
-//
-// dynamic-graph 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 Lesser General Public License for more details.
-// You should have received a copy of the GNU Lesser General Public License
-// along with dynamic-graph.  If not, see <http://www.gnu.org/licenses/>.
 
 #include <Eigen/Dense>
 
diff --git a/tests/signal-cast-registerer-libB.cpp b/tests/signal-cast-registerer-libB.cpp
index a8ce1b1aa0c165863dd8464a0eeaf15d6dda0bc6..81a8391d68d66de64bdf59cef9ad8056f2ecd9c3 100644
--- a/tests/signal-cast-registerer-libB.cpp
+++ b/tests/signal-cast-registerer-libB.cpp
@@ -1,17 +1,5 @@
 // Copyright 2010 Thomas Moulard.
 //
-// This file is part of dynamic-graph.
-// dynamic-graph is free software: you can redistribute it and/or modify
-// it under the terms of the GNU Lesser General Public License as published by
-// the Free Software Foundation, either version 3 of the License, or
-// (at your option) any later version.
-//
-// dynamic-graph 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 Lesser General Public License for more details.
-// You should have received a copy of the GNU Lesser General Public License
-// along with dynamic-graph.  If not, see <http://www.gnu.org/licenses/>.
 
 #include "signal-cast-registerer-libB.hh"
 
diff --git a/tests/signal-cast-registerer-libB.hh b/tests/signal-cast-registerer-libB.hh
index 1c600a5b6bfdba87e4ce6ad84c0df57eb19e5c93..47f43999f9254eea824ddf8a0c69b7068fab94cb 100644
--- a/tests/signal-cast-registerer-libB.hh
+++ b/tests/signal-cast-registerer-libB.hh
@@ -1,17 +1,5 @@
 // Copyright 2010 Thomas Moulard.
 //
-// This file is part of dynamic-graph.
-// dynamic-graph is free software: you can redistribute it and/or modify
-// it under the terms of the GNU Lesser General Public License as published by
-// the Free Software Foundation, either version 3 of the License, or
-// (at your option) any later version.
-//
-// dynamic-graph 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 Lesser General Public License for more details.
-// You should have received a copy of the GNU Lesser General Public License
-// along with dynamic-graph.  If not, see <http://www.gnu.org/licenses/>.
 
 #include <Eigen/Core>
 
diff --git a/tests/signal-cast-registerer.cpp b/tests/signal-cast-registerer.cpp
index 1982589f3d3d73f0a8092541a2c781a355845441..42b2b3ffb06a1e1ab1ca1e4d97c1c716ceccd39a 100644
--- a/tests/signal-cast-registerer.cpp
+++ b/tests/signal-cast-registerer.cpp
@@ -1,17 +1,5 @@
 // Copyright 2010 Thomas Moulard.
 //
-// This file is part of dynamic-graph.
-// dynamic-graph is free software: you can redistribute it and/or modify
-// it under the terms of the GNU Lesser General Public License as published by
-// the Free Software Foundation, either version 3 of the License, or
-// (at your option) any later version.
-//
-// dynamic-graph 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 Lesser General Public License for more details.
-// You should have received a copy of the GNU Lesser General Public License
-// along with dynamic-graph.  If not, see <http://www.gnu.org/licenses/>.
 
 #include <string>
 
diff --git a/tests/signal-ptr.cpp b/tests/signal-ptr.cpp
index 36638fda9b860f3da51ef1008ab03b089ec75783..9e196ace7c2d1c7820f8a0bbf8ad61f439d2af3f 100644
--- a/tests/signal-ptr.cpp
+++ b/tests/signal-ptr.cpp
@@ -1,17 +1,5 @@
 // Copyright 2010 Thomas Moulard.
 //
-// This file is part of dynamic-graph.
-// dynamic-graph is free software: you can redistribute it and/or modify
-// it under the terms of the GNU Lesser General Public License as published by
-// the Free Software Foundation, either version 3 of the License, or
-// (at your option) any later version.
-//
-// dynamic-graph 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 Lesser General Public License for more details.
-// You should have received a copy of the GNU Lesser General Public License
-// along with dynamic-graph.  If not, see <http://www.gnu.org/licenses/>.
 
 #include <string>
 
diff --git a/tests/signal-time-dependent.cpp b/tests/signal-time-dependent.cpp
index 246a3c6bd690f9665292f45bd15231bee8ee0af5..e186960aa118fda7e644c04f65c463b18829a3be 100644
--- a/tests/signal-time-dependent.cpp
+++ b/tests/signal-time-dependent.cpp
@@ -1,17 +1,5 @@
 // Copyright 2010 Thomas Moulard.
 //
-// This file is part of dynamic-graph.
-// dynamic-graph is free software: you can redistribute it and/or modify
-// it under the terms of the GNU Lesser General Public License as published by
-// the Free Software Foundation, either version 3 of the License, or
-// (at your option) any later version.
-//
-// dynamic-graph 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 Lesser General Public License for more details.
-// You should have received a copy of the GNU Lesser General Public License
-// along with dynamic-graph.  If not, see <http://www.gnu.org/licenses/>.
 
 #include <boost/foreach.hpp>
 
diff --git a/tests/value.cpp b/tests/value.cpp
index c3f62fb3925936fe11968f4bc3033bdacc7a0e3f..ca4855c9192da292121562c5b0c16771be5d533b 100644
--- a/tests/value.cpp
+++ b/tests/value.cpp
@@ -1,17 +1,5 @@
 // Copyright 2011 Florent Lamiraux, Thomas Moulard.
 //
-// This file is part of dynamic-graph.
-// dynamic-graph is free software: you can redistribute it and/or modify
-// it under the terms of the GNU Lesser General Public License as published by
-// the Free Software Foundation, either version 3 of the License, or
-// (at your option) any later version.
-//
-// dynamic-graph 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 Lesser General Public License for more details.
-// You should have received a copy of the GNU Lesser General Public License
-// along with dynamic-graph.  If not, see <http://www.gnu.org/licenses/>.
 
 #include <iostream>
 #include "dynamic-graph/value.h"