From 5bca9a3e17d46b7f48d2bfe035f59c4302c10a0b Mon Sep 17 00:00:00 2001
From: guille <guillermopolito@gmail.com>
Date: Thu, 27 Oct 2016 15:41:36 +0200
Subject: [PATCH] - Moved Message from package core to package support

---
 .../cristal/emeraude/n2s3/core/GlobalTimestamp.scala   |  2 +-
 .../cristal/emeraude/n2s3/core/NetworkContainer.scala  |  3 ++-
 .../cristal/emeraude/n2s3/core/NetworkEntity.scala     |  6 +++---
 .../univ_lille/cristal/emeraude/n2s3/core/Neuron.scala |  5 ++---
 .../cristal/emeraude/n2s3/core/NeuronConnection.scala  |  2 +-
 .../univ_lille/cristal/emeraude/n2s3/core/Path.scala   |  3 ++-
 .../cristal/emeraude/n2s3/core/Property.scala          |  2 +-
 .../cristal/emeraude/n2s3/core/Synchronizer.scala      |  2 +-
 .../cristal/emeraude/n2s3/core/actors/Initialize.scala |  6 ------
 .../cristal/emeraude/n2s3/core/actors/InputLayer.scala |  1 +
 .../emeraude/n2s3/core/actors/InputNeuron.scala        |  1 +
 .../emeraude/n2s3/core/actors/NetworkEntityActor.scala |  2 +-
 .../cristal/emeraude/n2s3/core/actors/ResetInput.scala |  2 ++
 .../emeraude/n2s3/core/actors/ReturnCurrentTime.scala  |  1 +
 .../cristal/emeraude/n2s3/core/actors/SaveInFile.scala |  2 ++
 .../cristal/emeraude/n2s3/core/actors/SetInput.scala   |  1 +
 .../emeraude/n2s3/core/actors/SetInputStream.scala     |  1 +
 .../cristal/emeraude/n2s3/core/actors/Spike.scala      |  2 ++
 .../emeraude/n2s3/core/actors/SyncMessage.scala        |  2 ++
 .../n2s3/core/actors/UnhandledMessageException.scala   |  2 ++
 .../emeraude/n2s3/core/actors/WiringMessage.scala      |  2 ++
 .../emeraude/n2s3/core/actors/WrapMessage.scala        |  2 ++
 .../emeraude/n2s3/core/event/EventHolderMessage.scala  |  2 +-
 .../emeraude/n2s3/core/event/EventResponse.scala       |  2 +-
 .../emeraude/n2s3/core/event/SynchronizedEvent.scala   |  2 +-
 .../core/exceptions/UnknownDestinationException.scala  |  2 +-
 .../cristal/emeraude/n2s3/features/builder/N2S3.scala  |  8 ++++----
 .../emeraude/n2s3/features/builder/N2S3ActorRef.scala  |  2 +-
 .../n2s3/features/builder/SynchronizedNeuronRef.scala  |  2 +-
 .../n2s3/features/io/report/BenchmarkMonitor.scala     |  8 +++++++-
 .../emeraude/n2s3/features/learning/SpikeCounter.scala |  3 ++-
 .../features/learning/SupervisedSTDPLearning.scala     |  6 +++---
 .../cristal/emeraude/n2s3/models/bio/LIFNeuron.scala   |  3 ++-
 .../cristal/emeraude/n2s3/models/bio/SRM2Neuron.scala  |  3 ++-
 .../cristal/emeraude/n2s3/models/bio/SRMNeuron.scala   |  3 ++-
 .../cristal/emeraude/n2s3/models/bio/Synapse.scala     |  3 ++-
 .../integrate_and_fire/IntegrateAndFireNeuron.scala    |  2 +-
 .../emeraude/n2s3/models/izhikevich/Neuron.scala       | 10 +++++-----
 .../emeraude/n2s3/models/izhikevich/Synapse.scala      |  3 ++-
 .../cristal/emeraude/n2s3/models/qbg/QBGNeuron.scala   |  3 ++-
 .../cristal/emeraude/n2s3/models/qbg/QBGSynapse.scala  |  3 ++-
 .../emeraude/n2s3/models/qbg/SharedConnection.scala    |  3 ++-
 .../emeraude/n2s3/models/ternary_synapse/Neuron.scala  |  3 ++-
 .../emeraude/n2s3/models/ternary_synapse/Synapse.scala |  3 ++-
 .../n2s3/{core => support}/actors/Message.scala        |  2 +-
 .../n2s3/support/actors/MessageSynchronizer.scala      |  1 -
 .../cristal/emeraude/n2s3/support/io/Input.scala       |  2 +-
 .../cristal/emeraude/n2s3/core/MockNeuron.scala        |  3 ++-
 .../cristal/emeraude/n2s3/core/TestNeuronActor.scala   |  3 ++-
 .../cristal/emeraude/n2s3/core/TestSynchronizer.scala  | 10 +++++-----
 .../synchronization/TestSynchronizedNeuronRef.scala    |  3 +--
 .../emeraude/n2s3/apps/models/PassiveNeuron.scala      |  2 +-
 52 files changed, 94 insertions(+), 63 deletions(-)
 delete mode 100644 n2s3/src/main/scala/fr/univ_lille/cristal/emeraude/n2s3/core/actors/Initialize.scala
 rename n2s3/src/main/scala/fr/univ_lille/cristal/emeraude/n2s3/{core => support}/actors/Message.scala (89%)

diff --git a/n2s3/src/main/scala/fr/univ_lille/cristal/emeraude/n2s3/core/GlobalTimestamp.scala b/n2s3/src/main/scala/fr/univ_lille/cristal/emeraude/n2s3/core/GlobalTimestamp.scala
index e1fb8a9e..8d3691ac 100644
--- a/n2s3/src/main/scala/fr/univ_lille/cristal/emeraude/n2s3/core/GlobalTimestamp.scala
+++ b/n2s3/src/main/scala/fr/univ_lille/cristal/emeraude/n2s3/core/GlobalTimestamp.scala
@@ -5,7 +5,7 @@
 package fr.univ_lille.cristal.emeraude.n2s3.core
 
 import fr.univ_lille.cristal.emeraude.n2s3.core.GlobalTypesAlias.Timestamp
-import fr.univ_lille.cristal.emeraude.n2s3.core.actors.Message
+import fr.univ_lille.cristal.emeraude.n2s3.support.actors.Message
 
 object GetGlobalTimestamp extends Message
 
diff --git a/n2s3/src/main/scala/fr/univ_lille/cristal/emeraude/n2s3/core/NetworkContainer.scala b/n2s3/src/main/scala/fr/univ_lille/cristal/emeraude/n2s3/core/NetworkContainer.scala
index 7778de53..69788a29 100644
--- a/n2s3/src/main/scala/fr/univ_lille/cristal/emeraude/n2s3/core/NetworkContainer.scala
+++ b/n2s3/src/main/scala/fr/univ_lille/cristal/emeraude/n2s3/core/NetworkContainer.scala
@@ -5,8 +5,9 @@
 package fr.univ_lille.cristal.emeraude.n2s3.core
 
 import fr.univ_lille.cristal.emeraude.n2s3.core.actors.NetworkEntityActor.AddChildEntity
-import fr.univ_lille.cristal.emeraude.n2s3.core.actors.{Message, UnhandledMessageException}
+import fr.univ_lille.cristal.emeraude.n2s3.core.actors.UnhandledMessageException
 import fr.univ_lille.cristal.emeraude.n2s3.core.exceptions.DuplicatedChildException
+import fr.univ_lille.cristal.emeraude.n2s3.support.actors.Message
 
 import scala.collection.mutable
 
diff --git a/n2s3/src/main/scala/fr/univ_lille/cristal/emeraude/n2s3/core/NetworkEntity.scala b/n2s3/src/main/scala/fr/univ_lille/cristal/emeraude/n2s3/core/NetworkEntity.scala
index 2f2a50bd..5705be32 100644
--- a/n2s3/src/main/scala/fr/univ_lille/cristal/emeraude/n2s3/core/NetworkEntity.scala
+++ b/n2s3/src/main/scala/fr/univ_lille/cristal/emeraude/n2s3/core/NetworkEntity.scala
@@ -5,11 +5,11 @@
 
 package fr.univ_lille.cristal.emeraude.n2s3.core
 
-import akka.actor.{Actor, ActorRef}
-import akka.testkit.TestActorRef
+import akka.actor.ActorRef
 import fr.univ_lille.cristal.emeraude.n2s3.core.NetworkEntity.AskReference
-import fr.univ_lille.cristal.emeraude.n2s3.core.actors.{Done, Message, NetworkEntityActor, WrapMessage}
+import fr.univ_lille.cristal.emeraude.n2s3.core.actors.{Done, NetworkEntityActor, WrapMessage}
 import fr.univ_lille.cristal.emeraude.n2s3.core.exceptions.UnknownPathException
+import fr.univ_lille.cristal.emeraude.n2s3.support.actors.Message
 
 /**
   * NetworkEntity companion object
diff --git a/n2s3/src/main/scala/fr/univ_lille/cristal/emeraude/n2s3/core/Neuron.scala b/n2s3/src/main/scala/fr/univ_lille/cristal/emeraude/n2s3/core/Neuron.scala
index 9359f0b0..6826f6bc 100644
--- a/n2s3/src/main/scala/fr/univ_lille/cristal/emeraude/n2s3/core/Neuron.scala
+++ b/n2s3/src/main/scala/fr/univ_lille/cristal/emeraude/n2s3/core/Neuron.scala
@@ -6,12 +6,11 @@ package fr.univ_lille.cristal.emeraude.n2s3.core
 
 import fr.univ_lille.cristal.emeraude.n2s3.core.GlobalTypesAlias.Timestamp
 import fr.univ_lille.cristal.emeraude.n2s3.core.NetworkEntity.AskReference
-import fr.univ_lille.cristal.emeraude.n2s3.core.Neuron.NeuronEnds
 import fr.univ_lille.cristal.emeraude.n2s3.core.NeuronConnection.ConnectionEnds
 import fr.univ_lille.cristal.emeraude.n2s3.core.Synchronizer.SynchronizedMessage
-import fr.univ_lille.cristal.emeraude.n2s3.core.actors.{Done, Message, NetworkEntityActor, WrapMessage}
+import fr.univ_lille.cristal.emeraude.n2s3.core.actors.{Done, WrapMessage}
 import fr.univ_lille.cristal.emeraude.n2s3.core.event.{EventHolder, EventHolderMessage, NeuronFireEvent}
-import fr.univ_lille.cristal.emeraude.n2s3.models.qbg.QBGInhibitorConnection
+import fr.univ_lille.cristal.emeraude.n2s3.support.actors.Message
 
 import scala.collection.mutable
 import scala.language.postfixOps
diff --git a/n2s3/src/main/scala/fr/univ_lille/cristal/emeraude/n2s3/core/NeuronConnection.scala b/n2s3/src/main/scala/fr/univ_lille/cristal/emeraude/n2s3/core/NeuronConnection.scala
index 98f26ccd..c8e46d36 100644
--- a/n2s3/src/main/scala/fr/univ_lille/cristal/emeraude/n2s3/core/NeuronConnection.scala
+++ b/n2s3/src/main/scala/fr/univ_lille/cristal/emeraude/n2s3/core/NeuronConnection.scala
@@ -7,7 +7,7 @@ package fr.univ_lille.cristal.emeraude.n2s3.core
 import fr.univ_lille.cristal.emeraude.n2s3.core.GlobalTypesAlias._
 import fr.univ_lille.cristal.emeraude.n2s3.core.Neuron.{Connection, NeuronEnds, NeuronMessage}
 import fr.univ_lille.cristal.emeraude.n2s3.core.NeuronConnection.ConnectionEnds
-import fr.univ_lille.cristal.emeraude.n2s3.core.actors.Message
+import fr.univ_lille.cristal.emeraude.n2s3.support.actors.Message
 
 /**
   * NeuronConnection Companion object
diff --git a/n2s3/src/main/scala/fr/univ_lille/cristal/emeraude/n2s3/core/Path.scala b/n2s3/src/main/scala/fr/univ_lille/cristal/emeraude/n2s3/core/Path.scala
index 1f169e50..73bf4d15 100644
--- a/n2s3/src/main/scala/fr/univ_lille/cristal/emeraude/n2s3/core/Path.scala
+++ b/n2s3/src/main/scala/fr/univ_lille/cristal/emeraude/n2s3/core/Path.scala
@@ -6,8 +6,9 @@ package fr.univ_lille.cristal.emeraude.n2s3.core
 
 import akka.actor.ActorRef
 import akka.util.Timeout
-import fr.univ_lille.cristal.emeraude.n2s3.core.actors.{Config, Message, NetworkEntityActor}
+import fr.univ_lille.cristal.emeraude.n2s3.core.actors.{Config, NetworkEntityActor}
 import fr.univ_lille.cristal.emeraude.n2s3.core.actors.NetworkEntityActor.{ExplicitSenderRoutedMessage, ImplicitSenderRoutedMessage}
+import fr.univ_lille.cristal.emeraude.n2s3.support.actors.Message
 
 import scala.concurrent.{Await, Future}
 
diff --git a/n2s3/src/main/scala/fr/univ_lille/cristal/emeraude/n2s3/core/Property.scala b/n2s3/src/main/scala/fr/univ_lille/cristal/emeraude/n2s3/core/Property.scala
index ca615b65..f08b2027 100644
--- a/n2s3/src/main/scala/fr/univ_lille/cristal/emeraude/n2s3/core/Property.scala
+++ b/n2s3/src/main/scala/fr/univ_lille/cristal/emeraude/n2s3/core/Property.scala
@@ -7,7 +7,7 @@ package fr.univ_lille.cristal.emeraude.n2s3.core
 
 import akka.actor._
 import fr.univ_lille.cristal.emeraude.n2s3.core.Neuron.InputConnection
-import fr.univ_lille.cristal.emeraude.n2s3.core.actors.Message
+import fr.univ_lille.cristal.emeraude.n2s3.support.actors.Message
 import squants.electro.ElectricPotential
 
 import scala.collection.mutable
diff --git a/n2s3/src/main/scala/fr/univ_lille/cristal/emeraude/n2s3/core/Synchronizer.scala b/n2s3/src/main/scala/fr/univ_lille/cristal/emeraude/n2s3/core/Synchronizer.scala
index 88f96f62..73f812da 100644
--- a/n2s3/src/main/scala/fr/univ_lille/cristal/emeraude/n2s3/core/Synchronizer.scala
+++ b/n2s3/src/main/scala/fr/univ_lille/cristal/emeraude/n2s3/core/Synchronizer.scala
@@ -9,7 +9,7 @@ import fr.univ_lille.cristal.emeraude.n2s3.core
 import fr.univ_lille.cristal.emeraude.n2s3.core.GlobalTypesAlias._
 import fr.univ_lille.cristal.emeraude.n2s3.core.actors._
 import fr.univ_lille.cristal.emeraude.n2s3.core.event.{Event, EventHolder, EventTriggered}
-import fr.univ_lille.cristal.emeraude.n2s3.support.actors.{ActorCompanion, PropsBuilder}
+import fr.univ_lille.cristal.emeraude.n2s3.support.actors.{ActorCompanion, Message, PropsBuilder}
 
 /**
   * Synchronizer companion object
diff --git a/n2s3/src/main/scala/fr/univ_lille/cristal/emeraude/n2s3/core/actors/Initialize.scala b/n2s3/src/main/scala/fr/univ_lille/cristal/emeraude/n2s3/core/actors/Initialize.scala
deleted file mode 100644
index 422aed91..00000000
--- a/n2s3/src/main/scala/fr/univ_lille/cristal/emeraude/n2s3/core/actors/Initialize.scala
+++ /dev/null
@@ -1,6 +0,0 @@
-package fr.univ_lille.cristal.emeraude.n2s3.core.actors
-
-/***********************************************************************************************
- *  Message send for ask an actor to initiate itself
- **********************************************************************************************/
-object Initialize extends Message
diff --git a/n2s3/src/main/scala/fr/univ_lille/cristal/emeraude/n2s3/core/actors/InputLayer.scala b/n2s3/src/main/scala/fr/univ_lille/cristal/emeraude/n2s3/core/actors/InputLayer.scala
index abce5c12..84e38e1e 100644
--- a/n2s3/src/main/scala/fr/univ_lille/cristal/emeraude/n2s3/core/actors/InputLayer.scala
+++ b/n2s3/src/main/scala/fr/univ_lille/cristal/emeraude/n2s3/core/actors/InputLayer.scala
@@ -6,6 +6,7 @@ import fr.univ_lille.cristal.emeraude.n2s3.core.Synchronizer.{AskInput, CleanQue
 import fr.univ_lille.cristal.emeraude.n2s3.core._
 import fr.univ_lille.cristal.emeraude.n2s3.core.event.{EventHolder, EventHolderMessage, LabelChangeEvent, LabelChangeResponse}
 import fr.univ_lille.cristal.emeraude.n2s3.features.io.input.StreamSupport
+import fr.univ_lille.cristal.emeraude.n2s3.support.actors.Message
 import fr.univ_lille.cristal.emeraude.n2s3.support.io._
 
 import scala.annotation.tailrec
diff --git a/n2s3/src/main/scala/fr/univ_lille/cristal/emeraude/n2s3/core/actors/InputNeuron.scala b/n2s3/src/main/scala/fr/univ_lille/cristal/emeraude/n2s3/core/actors/InputNeuron.scala
index f09d399d..5ff7d440 100644
--- a/n2s3/src/main/scala/fr/univ_lille/cristal/emeraude/n2s3/core/actors/InputNeuron.scala
+++ b/n2s3/src/main/scala/fr/univ_lille/cristal/emeraude/n2s3/core/actors/InputNeuron.scala
@@ -5,6 +5,7 @@ import fr.univ_lille.cristal.emeraude.n2s3.core.Neuron.NeuronEnds
 import fr.univ_lille.cristal.emeraude.n2s3.core.event.{NeuronFireEvent, NeuronFireResponse}
 import fr.univ_lille.cristal.emeraude.n2s3.core.Neuron
 import fr.univ_lille.cristal.emeraude.n2s3.core.models.properties.SynapticWeightFloat
+import fr.univ_lille.cristal.emeraude.n2s3.support.actors.Message
 
 /**
   * Created by guille on 10/14/16.
diff --git a/n2s3/src/main/scala/fr/univ_lille/cristal/emeraude/n2s3/core/actors/NetworkEntityActor.scala b/n2s3/src/main/scala/fr/univ_lille/cristal/emeraude/n2s3/core/actors/NetworkEntityActor.scala
index 9f0e79f5..ecc8a55c 100644
--- a/n2s3/src/main/scala/fr/univ_lille/cristal/emeraude/n2s3/core/actors/NetworkEntityActor.scala
+++ b/n2s3/src/main/scala/fr/univ_lille/cristal/emeraude/n2s3/core/actors/NetworkEntityActor.scala
@@ -9,7 +9,7 @@ import fr.univ_lille.cristal.emeraude.n2s3.core._
 import fr.univ_lille.cristal.emeraude.n2s3.core.actors.NetworkEntityActor.{ExplicitSenderRoutedMessage, ImplicitSenderRoutedMessage}
 import fr.univ_lille.cristal.emeraude.n2s3.core.exceptions.{UnknownDestinationException, UnknownPathException}
 import fr.univ_lille.cristal.emeraude.n2s3.support.actors
-import fr.univ_lille.cristal.emeraude.n2s3.support.actors.{ActorCompanion, PropsBuilder, SinglePropsBuilder}
+import fr.univ_lille.cristal.emeraude.n2s3.support.actors.{ActorCompanion, Message, PropsBuilder, SinglePropsBuilder}
 
 import scala.collection.mutable
 
diff --git a/n2s3/src/main/scala/fr/univ_lille/cristal/emeraude/n2s3/core/actors/ResetInput.scala b/n2s3/src/main/scala/fr/univ_lille/cristal/emeraude/n2s3/core/actors/ResetInput.scala
index 82bb0c2c..85b9942b 100644
--- a/n2s3/src/main/scala/fr/univ_lille/cristal/emeraude/n2s3/core/actors/ResetInput.scala
+++ b/n2s3/src/main/scala/fr/univ_lille/cristal/emeraude/n2s3/core/actors/ResetInput.scala
@@ -1,5 +1,7 @@
 package fr.univ_lille.cristal.emeraude.n2s3.core.actors
 
+import fr.univ_lille.cristal.emeraude.n2s3.support.actors.Message
+
 /**
   * Created by guille on 10/14/16.
   */
diff --git a/n2s3/src/main/scala/fr/univ_lille/cristal/emeraude/n2s3/core/actors/ReturnCurrentTime.scala b/n2s3/src/main/scala/fr/univ_lille/cristal/emeraude/n2s3/core/actors/ReturnCurrentTime.scala
index 5506c310..da651e0c 100644
--- a/n2s3/src/main/scala/fr/univ_lille/cristal/emeraude/n2s3/core/actors/ReturnCurrentTime.scala
+++ b/n2s3/src/main/scala/fr/univ_lille/cristal/emeraude/n2s3/core/actors/ReturnCurrentTime.scala
@@ -1,6 +1,7 @@
 package fr.univ_lille.cristal.emeraude.n2s3.core.actors
 
 import fr.univ_lille.cristal.emeraude.n2s3.core.GlobalTypesAlias._
+import fr.univ_lille.cristal.emeraude.n2s3.support.actors.Message
 
 /**
   * Created by guille on 10/14/16.
diff --git a/n2s3/src/main/scala/fr/univ_lille/cristal/emeraude/n2s3/core/actors/SaveInFile.scala b/n2s3/src/main/scala/fr/univ_lille/cristal/emeraude/n2s3/core/actors/SaveInFile.scala
index 180eb751..5386d288 100644
--- a/n2s3/src/main/scala/fr/univ_lille/cristal/emeraude/n2s3/core/actors/SaveInFile.scala
+++ b/n2s3/src/main/scala/fr/univ_lille/cristal/emeraude/n2s3/core/actors/SaveInFile.scala
@@ -1,5 +1,7 @@
 package fr.univ_lille.cristal.emeraude.n2s3.core.actors
 
+import fr.univ_lille.cristal.emeraude.n2s3.support.actors.Message
+
 /**
   * Created by guille on 10/14/16.
   */
diff --git a/n2s3/src/main/scala/fr/univ_lille/cristal/emeraude/n2s3/core/actors/SetInput.scala b/n2s3/src/main/scala/fr/univ_lille/cristal/emeraude/n2s3/core/actors/SetInput.scala
index d8c13e13..8414da91 100644
--- a/n2s3/src/main/scala/fr/univ_lille/cristal/emeraude/n2s3/core/actors/SetInput.scala
+++ b/n2s3/src/main/scala/fr/univ_lille/cristal/emeraude/n2s3/core/actors/SetInput.scala
@@ -1,6 +1,7 @@
 package fr.univ_lille.cristal.emeraude.n2s3.core.actors
 
 import fr.univ_lille.cristal.emeraude.n2s3.core.NetworkEntityPath
+import fr.univ_lille.cristal.emeraude.n2s3.support.actors.Message
 
 /** Set the current actor input generator to the synchronizer of inputs */
 case class SetInput(path : NetworkEntityPath) extends Message
diff --git a/n2s3/src/main/scala/fr/univ_lille/cristal/emeraude/n2s3/core/actors/SetInputStream.scala b/n2s3/src/main/scala/fr/univ_lille/cristal/emeraude/n2s3/core/actors/SetInputStream.scala
index 3a1f2718..88261142 100644
--- a/n2s3/src/main/scala/fr/univ_lille/cristal/emeraude/n2s3/core/actors/SetInputStream.scala
+++ b/n2s3/src/main/scala/fr/univ_lille/cristal/emeraude/n2s3/core/actors/SetInputStream.scala
@@ -1,6 +1,7 @@
 package fr.univ_lille.cristal.emeraude.n2s3.core.actors
 
 import fr.univ_lille.cristal.emeraude.n2s3.features.io.input.StreamSupport
+import fr.univ_lille.cristal.emeraude.n2s3.support.actors.Message
 import fr.univ_lille.cristal.emeraude.n2s3.support.io.{Input, InputSeq, N2S3Input}
 
 /** ******************************************************************************************************************
diff --git a/n2s3/src/main/scala/fr/univ_lille/cristal/emeraude/n2s3/core/actors/Spike.scala b/n2s3/src/main/scala/fr/univ_lille/cristal/emeraude/n2s3/core/actors/Spike.scala
index f19cdb5e..4eeeda37 100644
--- a/n2s3/src/main/scala/fr/univ_lille/cristal/emeraude/n2s3/core/actors/Spike.scala
+++ b/n2s3/src/main/scala/fr/univ_lille/cristal/emeraude/n2s3/core/actors/Spike.scala
@@ -1,5 +1,7 @@
 package fr.univ_lille.cristal.emeraude.n2s3.core.actors
 
+import fr.univ_lille.cristal.emeraude.n2s3.support.actors.Message
+
 /***********************************************************************************************
  * 	Basic class for all spike message type
  **********************************************************************************************/
diff --git a/n2s3/src/main/scala/fr/univ_lille/cristal/emeraude/n2s3/core/actors/SyncMessage.scala b/n2s3/src/main/scala/fr/univ_lille/cristal/emeraude/n2s3/core/actors/SyncMessage.scala
index 590064e8..9f510bf3 100644
--- a/n2s3/src/main/scala/fr/univ_lille/cristal/emeraude/n2s3/core/actors/SyncMessage.scala
+++ b/n2s3/src/main/scala/fr/univ_lille/cristal/emeraude/n2s3/core/actors/SyncMessage.scala
@@ -1,5 +1,7 @@
 package fr.univ_lille.cristal.emeraude.n2s3.core.actors
 
+import fr.univ_lille.cristal.emeraude.n2s3.support.actors.Message
+
 /*************************************************************************************************
 *>>>>>>> a2debf0a5ca3792a035f19095d06369a403808c7
  * Base class for all the synchronization mechanism.
diff --git a/n2s3/src/main/scala/fr/univ_lille/cristal/emeraude/n2s3/core/actors/UnhandledMessageException.scala b/n2s3/src/main/scala/fr/univ_lille/cristal/emeraude/n2s3/core/actors/UnhandledMessageException.scala
index c4fe8d86..d27cc54c 100644
--- a/n2s3/src/main/scala/fr/univ_lille/cristal/emeraude/n2s3/core/actors/UnhandledMessageException.scala
+++ b/n2s3/src/main/scala/fr/univ_lille/cristal/emeraude/n2s3/core/actors/UnhandledMessageException.scala
@@ -1,5 +1,7 @@
 package fr.univ_lille.cristal.emeraude.n2s3.core.actors
 
+import fr.univ_lille.cristal.emeraude.n2s3.support.actors.Message
+
 /**
   * Created by guille on 10/14/16.
   */
diff --git a/n2s3/src/main/scala/fr/univ_lille/cristal/emeraude/n2s3/core/actors/WiringMessage.scala b/n2s3/src/main/scala/fr/univ_lille/cristal/emeraude/n2s3/core/actors/WiringMessage.scala
index f5f8eec9..3a61e17a 100644
--- a/n2s3/src/main/scala/fr/univ_lille/cristal/emeraude/n2s3/core/actors/WiringMessage.scala
+++ b/n2s3/src/main/scala/fr/univ_lille/cristal/emeraude/n2s3/core/actors/WiringMessage.scala
@@ -1,5 +1,7 @@
 package fr.univ_lille.cristal.emeraude.n2s3.core.actors
 
+import fr.univ_lille.cristal.emeraude.n2s3.support.actors.Message
+
 /*************************************************************************************************
  * Base class for all the messages that connect the neurones and synapses together.
  ************************************************************************************************/
diff --git a/n2s3/src/main/scala/fr/univ_lille/cristal/emeraude/n2s3/core/actors/WrapMessage.scala b/n2s3/src/main/scala/fr/univ_lille/cristal/emeraude/n2s3/core/actors/WrapMessage.scala
index 6897d766..92373327 100644
--- a/n2s3/src/main/scala/fr/univ_lille/cristal/emeraude/n2s3/core/actors/WrapMessage.scala
+++ b/n2s3/src/main/scala/fr/univ_lille/cristal/emeraude/n2s3/core/actors/WrapMessage.scala
@@ -1,5 +1,7 @@
 package fr.univ_lille.cristal.emeraude.n2s3.core.actors
 
+import fr.univ_lille.cristal.emeraude.n2s3.support.actors.Message
+
 /**
   * Created by guille on 10/14/16.
   */
diff --git a/n2s3/src/main/scala/fr/univ_lille/cristal/emeraude/n2s3/core/event/EventHolderMessage.scala b/n2s3/src/main/scala/fr/univ_lille/cristal/emeraude/n2s3/core/event/EventHolderMessage.scala
index 0b53a860..60b650d8 100644
--- a/n2s3/src/main/scala/fr/univ_lille/cristal/emeraude/n2s3/core/event/EventHolderMessage.scala
+++ b/n2s3/src/main/scala/fr/univ_lille/cristal/emeraude/n2s3/core/event/EventHolderMessage.scala
@@ -1,6 +1,6 @@
 package fr.univ_lille.cristal.emeraude.n2s3.core.event
 
-import fr.univ_lille.cristal.emeraude.n2s3.core.actors.Message
+import fr.univ_lille.cristal.emeraude.n2s3.support.actors.Message
 
 /***********************************************************************************************
  * 														SUBSCRIBE AND UNSUBSCRIBE MESSAGES
diff --git a/n2s3/src/main/scala/fr/univ_lille/cristal/emeraude/n2s3/core/event/EventResponse.scala b/n2s3/src/main/scala/fr/univ_lille/cristal/emeraude/n2s3/core/event/EventResponse.scala
index 88f11145..2a1d0800 100644
--- a/n2s3/src/main/scala/fr/univ_lille/cristal/emeraude/n2s3/core/event/EventResponse.scala
+++ b/n2s3/src/main/scala/fr/univ_lille/cristal/emeraude/n2s3/core/event/EventResponse.scala
@@ -1,6 +1,6 @@
 package fr.univ_lille.cristal.emeraude.n2s3.core.event
 
-import fr.univ_lille.cristal.emeraude.n2s3.core.actors.Message
+import fr.univ_lille.cristal.emeraude.n2s3.support.actors.Message
 
 /*********************************************************************************************************
  * List of event which can be trigger by neuron
diff --git a/n2s3/src/main/scala/fr/univ_lille/cristal/emeraude/n2s3/core/event/SynchronizedEvent.scala b/n2s3/src/main/scala/fr/univ_lille/cristal/emeraude/n2s3/core/event/SynchronizedEvent.scala
index c8908fd7..0415dffe 100644
--- a/n2s3/src/main/scala/fr/univ_lille/cristal/emeraude/n2s3/core/event/SynchronizedEvent.scala
+++ b/n2s3/src/main/scala/fr/univ_lille/cristal/emeraude/n2s3/core/event/SynchronizedEvent.scala
@@ -2,8 +2,8 @@ package fr.univ_lille.cristal.emeraude.n2s3.core.event
 
 import fr.univ_lille.cristal.emeraude.n2s3.core.GlobalTypesAlias.Timestamp
 import fr.univ_lille.cristal.emeraude.n2s3.core.Synchronizer.SynchronizedMessage
-import fr.univ_lille.cristal.emeraude.n2s3.core.actors.Message
 import fr.univ_lille.cristal.emeraude.n2s3.core.{NetworkEntityPath, NetworkEntityReference}
+import fr.univ_lille.cristal.emeraude.n2s3.support.actors.Message
 
 /**
   * Created by guille on 10/20/16.
diff --git a/n2s3/src/main/scala/fr/univ_lille/cristal/emeraude/n2s3/core/exceptions/UnknownDestinationException.scala b/n2s3/src/main/scala/fr/univ_lille/cristal/emeraude/n2s3/core/exceptions/UnknownDestinationException.scala
index b5dc2d85..b71cf8d5 100644
--- a/n2s3/src/main/scala/fr/univ_lille/cristal/emeraude/n2s3/core/exceptions/UnknownDestinationException.scala
+++ b/n2s3/src/main/scala/fr/univ_lille/cristal/emeraude/n2s3/core/exceptions/UnknownDestinationException.scala
@@ -1,7 +1,7 @@
 package fr.univ_lille.cristal.emeraude.n2s3.core.exceptions
 
 import fr.univ_lille.cristal.emeraude.n2s3.core.NetworkEntityPath
-import fr.univ_lille.cristal.emeraude.n2s3.core.actors.Message
+import fr.univ_lille.cristal.emeraude.n2s3.support.actors.Message
 
 /**
   * Created by falezp on 02/06/16.
diff --git a/n2s3/src/main/scala/fr/univ_lille/cristal/emeraude/n2s3/features/builder/N2S3.scala b/n2s3/src/main/scala/fr/univ_lille/cristal/emeraude/n2s3/features/builder/N2S3.scala
index dbf5d8e3..e9a603d3 100644
--- a/n2s3/src/main/scala/fr/univ_lille/cristal/emeraude/n2s3/features/builder/N2S3.scala
+++ b/n2s3/src/main/scala/fr/univ_lille/cristal/emeraude/n2s3/features/builder/N2S3.scala
@@ -1,16 +1,16 @@
 package fr.univ_lille.cristal.emeraude.n2s3.features.builder
 
-import akka.actor.{ActorRef, ActorSystem, Props}
+import akka.actor.{ActorRef, ActorSystem}
 import akka.util.Timeout
 import com.typesafe.config.ConfigFactory
 import fr.univ_lille.cristal.emeraude.n2s3.core.Synchronizer.{Start, WaitEndOfActivity}
 import fr.univ_lille.cristal.emeraude.n2s3.core._
-import fr.univ_lille.cristal.emeraude.n2s3.core.actors.{Config, Message, SetInput}
+import fr.univ_lille.cristal.emeraude.n2s3.core.actors.{Config, SetInput}
 import fr.univ_lille.cristal.emeraude.n2s3.core.exceptions.N2S3Exception
-import fr.univ_lille.cristal.emeraude.n2s3.features.io.input.{N2S3InputStream, StreamSupport}
+import fr.univ_lille.cristal.emeraude.n2s3.features.io.input.StreamSupport
 import fr.univ_lille.cristal.emeraude.n2s3.features.io.report.BenchmarkMonitorRef
 import fr.univ_lille.cristal.emeraude.n2s3.features.logging.graph.SynapsesWeightGraphBuilderRef
-import fr.univ_lille.cristal.emeraude.n2s3.support.actors._
+import fr.univ_lille.cristal.emeraude.n2s3.support.actors.{Message, _}
 import fr.univ_lille.cristal.emeraude.n2s3.support.io.{Input, InputSeq, N2S3Input}
 
 /**
diff --git a/n2s3/src/main/scala/fr/univ_lille/cristal/emeraude/n2s3/features/builder/N2S3ActorRef.scala b/n2s3/src/main/scala/fr/univ_lille/cristal/emeraude/n2s3/features/builder/N2S3ActorRef.scala
index c18a0549..0b597156 100644
--- a/n2s3/src/main/scala/fr/univ_lille/cristal/emeraude/n2s3/features/builder/N2S3ActorRef.scala
+++ b/n2s3/src/main/scala/fr/univ_lille/cristal/emeraude/n2s3/features/builder/N2S3ActorRef.scala
@@ -1,6 +1,6 @@
 package fr.univ_lille.cristal.emeraude.n2s3.features.builder
-import fr.univ_lille.cristal.emeraude.n2s3.core.actors.Message
 import fr.univ_lille.cristal.emeraude.n2s3.core.{ExternalSender, NetworkEntityPath}
+import fr.univ_lille.cristal.emeraude.n2s3.support.actors.Message
 
 /**
   * Created by guille on 8/4/16.
diff --git a/n2s3/src/main/scala/fr/univ_lille/cristal/emeraude/n2s3/features/builder/SynchronizedNeuronRef.scala b/n2s3/src/main/scala/fr/univ_lille/cristal/emeraude/n2s3/features/builder/SynchronizedNeuronRef.scala
index 38bb2128..0c9f4ca3 100644
--- a/n2s3/src/main/scala/fr/univ_lille/cristal/emeraude/n2s3/features/builder/SynchronizedNeuronRef.scala
+++ b/n2s3/src/main/scala/fr/univ_lille/cristal/emeraude/n2s3/features/builder/SynchronizedNeuronRef.scala
@@ -3,7 +3,7 @@ package fr.univ_lille.cristal.emeraude.n2s3.features.builder
 import akka.actor.ActorRef
 import fr.univ_lille.cristal.emeraude.n2s3.core.Neuron.NeuronMessage
 import fr.univ_lille.cristal.emeraude.n2s3.core._
-import fr.univ_lille.cristal.emeraude.n2s3.core.actors.Message
+import fr.univ_lille.cristal.emeraude.n2s3.support.actors.Message
 
 /**
   * Created by guille on 8/5/16.
diff --git a/n2s3/src/main/scala/fr/univ_lille/cristal/emeraude/n2s3/features/io/report/BenchmarkMonitor.scala b/n2s3/src/main/scala/fr/univ_lille/cristal/emeraude/n2s3/features/io/report/BenchmarkMonitor.scala
index 3e468684..0cd752c7 100644
--- a/n2s3/src/main/scala/fr/univ_lille/cristal/emeraude/n2s3/features/io/report/BenchmarkMonitor.scala
+++ b/n2s3/src/main/scala/fr/univ_lille/cristal/emeraude/n2s3/features/io/report/BenchmarkMonitor.scala
@@ -9,12 +9,18 @@ import java.io.{File, PrintWriter}
 import akka.actor.Actor
 import fr.univ_lille.cristal.emeraude.n2s3.core.GlobalTypesAlias._
 import fr.univ_lille.cristal.emeraude.n2s3.core._
-import fr.univ_lille.cristal.emeraude.n2s3.core.actors.{Done, Initialize, Message}
+import fr.univ_lille.cristal.emeraude.n2s3.core.actors.Done
 import fr.univ_lille.cristal.emeraude.n2s3.core.event._
+import fr.univ_lille.cristal.emeraude.n2s3.support.actors.Message
 
 import scala.collection.mutable
 
+/**
+  * BenchmarkMonitor messages
+  */
 case class GetResult() extends Message
+object Initialize extends Message
+
 
 
 class InputCrossInfo(val label : String , val startTime : Timestamp, val endTime : Timestamp) {
diff --git a/n2s3/src/main/scala/fr/univ_lille/cristal/emeraude/n2s3/features/learning/SpikeCounter.scala b/n2s3/src/main/scala/fr/univ_lille/cristal/emeraude/n2s3/features/learning/SpikeCounter.scala
index 3c9ac1c8..9a0907c0 100644
--- a/n2s3/src/main/scala/fr/univ_lille/cristal/emeraude/n2s3/features/learning/SpikeCounter.scala
+++ b/n2s3/src/main/scala/fr/univ_lille/cristal/emeraude/n2s3/features/learning/SpikeCounter.scala
@@ -2,8 +2,9 @@ package fr.univ_lille.cristal.emeraude.n2s3.features.learning
 
 import akka.actor.Actor
 import fr.univ_lille.cristal.emeraude.n2s3.core._
-import fr.univ_lille.cristal.emeraude.n2s3.core.actors.{Message, WrapMessage}
+import fr.univ_lille.cristal.emeraude.n2s3.core.actors.WrapMessage
 import fr.univ_lille.cristal.emeraude.n2s3.core.event.{NeuronFireEvent, NeuronFireResponse, Subscribe}
+import fr.univ_lille.cristal.emeraude.n2s3.support.actors.Message
 
 import scala.collection.mutable
 /**
diff --git a/n2s3/src/main/scala/fr/univ_lille/cristal/emeraude/n2s3/features/learning/SupervisedSTDPLearning.scala b/n2s3/src/main/scala/fr/univ_lille/cristal/emeraude/n2s3/features/learning/SupervisedSTDPLearning.scala
index d129a1d1..65fbc3fd 100644
--- a/n2s3/src/main/scala/fr/univ_lille/cristal/emeraude/n2s3/features/learning/SupervisedSTDPLearning.scala
+++ b/n2s3/src/main/scala/fr/univ_lille/cristal/emeraude/n2s3/features/learning/SupervisedSTDPLearning.scala
@@ -1,14 +1,14 @@
 package fr.univ_lille.cristal.emeraude.n2s3.features.learning
 
-import akka.actor.Actor.Receive
-import akka.actor.{Actor, ActorRef}
+import akka.actor.Actor
 import fr.univ_lille.cristal.emeraude.n2s3.core.GlobalTypesAlias.Timestamp
 import fr.univ_lille.cristal.emeraude.n2s3.core.NetworkEntity.AskReference
 import fr.univ_lille.cristal.emeraude.n2s3.core.Neuron.NeuronMessage
 import fr.univ_lille.cristal.emeraude.n2s3.core._
-import fr.univ_lille.cristal.emeraude.n2s3.core.actors.{Done, Message, WrapMessage}
+import fr.univ_lille.cristal.emeraude.n2s3.core.actors.{Done, WrapMessage}
 import fr.univ_lille.cristal.emeraude.n2s3.core.event.{LabelChangeEvent, LabelChangeResponse, SubscribeSynchronized, SynchronizedEvent}
 import fr.univ_lille.cristal.emeraude.n2s3.features.builder.N2S3
+import fr.univ_lille.cristal.emeraude.n2s3.support.actors.Message
 
 /**
   * Created by falezp on 14/10/16.
diff --git a/n2s3/src/main/scala/fr/univ_lille/cristal/emeraude/n2s3/models/bio/LIFNeuron.scala b/n2s3/src/main/scala/fr/univ_lille/cristal/emeraude/n2s3/models/bio/LIFNeuron.scala
index 6491d5c8..be416363 100644
--- a/n2s3/src/main/scala/fr/univ_lille/cristal/emeraude/n2s3/models/bio/LIFNeuron.scala
+++ b/n2s3/src/main/scala/fr/univ_lille/cristal/emeraude/n2s3/models/bio/LIFNeuron.scala
@@ -5,12 +5,13 @@ import fr.univ_lille.cristal.emeraude.n2s3.core.GlobalTypesAlias._
 import fr.univ_lille.cristal.emeraude.n2s3.core.Neuron.{Inhibition, NeuronEnds}
 import fr.univ_lille.cristal.emeraude.n2s3.core._
 import fr.univ_lille.cristal.emeraude.n2s3.core.UnitCast._
-import fr.univ_lille.cristal.emeraude.n2s3.core.actors.{Message, ShapelessSpike, WeightedSpike}
+import fr.univ_lille.cristal.emeraude.n2s3.core.actors.{ShapelessSpike, WeightedSpike}
 import fr.univ_lille.cristal.emeraude.n2s3.core.event.{NeuronFireEvent, NeuronFireResponse}
 import fr.univ_lille.cristal.emeraude.n2s3.core.models.properties._
 import fr.univ_lille.cristal.emeraude.n2s3.core.models.synapse.FloatSynapse
 import fr.univ_lille.cristal.emeraude.n2s3.features.learning.{LTDUntil, LTPUntil}
 import fr.univ_lille.cristal.emeraude.n2s3.models.qbg._
+import fr.univ_lille.cristal.emeraude.n2s3.support.actors.Message
 
 import scala.collection.mutable
 import scala.math._
diff --git a/n2s3/src/main/scala/fr/univ_lille/cristal/emeraude/n2s3/models/bio/SRM2Neuron.scala b/n2s3/src/main/scala/fr/univ_lille/cristal/emeraude/n2s3/models/bio/SRM2Neuron.scala
index 6dda95d6..213672bb 100644
--- a/n2s3/src/main/scala/fr/univ_lille/cristal/emeraude/n2s3/models/bio/SRM2Neuron.scala
+++ b/n2s3/src/main/scala/fr/univ_lille/cristal/emeraude/n2s3/models/bio/SRM2Neuron.scala
@@ -4,11 +4,12 @@ import fr.univ_lille.cristal.emeraude.n2s3.core
 import fr.univ_lille.cristal.emeraude.n2s3.core.GlobalTypesAlias.Timestamp
 import fr.univ_lille.cristal.emeraude.n2s3.core.Neuron.{NeuronEnds, NeuronMessage}
 import fr.univ_lille.cristal.emeraude.n2s3.core._
-import fr.univ_lille.cristal.emeraude.n2s3.core.actors.{Message, ShapelessSpike, WeightedSpike}
+import fr.univ_lille.cristal.emeraude.n2s3.core.actors.{ShapelessSpike, WeightedSpike}
 import fr.univ_lille.cristal.emeraude.n2s3.core.UnitCast._
 import fr.univ_lille.cristal.emeraude.n2s3.core.event.{NeuronFireEvent, NeuronFireResponse}
 import fr.univ_lille.cristal.emeraude.n2s3.core.models.properties.{MembraneThresholdFloat, SynapticWeightFloat}
 import fr.univ_lille.cristal.emeraude.n2s3.core.models.synapse.FloatSynapse
+import fr.univ_lille.cristal.emeraude.n2s3.support.actors.Message
 
 import scala.collection.mutable
 
diff --git a/n2s3/src/main/scala/fr/univ_lille/cristal/emeraude/n2s3/models/bio/SRMNeuron.scala b/n2s3/src/main/scala/fr/univ_lille/cristal/emeraude/n2s3/models/bio/SRMNeuron.scala
index d6799481..395ddcf9 100644
--- a/n2s3/src/main/scala/fr/univ_lille/cristal/emeraude/n2s3/models/bio/SRMNeuron.scala
+++ b/n2s3/src/main/scala/fr/univ_lille/cristal/emeraude/n2s3/models/bio/SRMNeuron.scala
@@ -5,11 +5,12 @@ import fr.univ_lille.cristal.emeraude.n2s3.core.GlobalTypesAlias._
 import fr.univ_lille.cristal.emeraude.n2s3.core.Neuron.{Inhibition, NeuronEnds}
 import fr.univ_lille.cristal.emeraude.n2s3.core._
 import fr.univ_lille.cristal.emeraude.n2s3.core.UnitCast._
-import fr.univ_lille.cristal.emeraude.n2s3.core.actors.{Message, ShapelessSpike, WeightedSpike}
+import fr.univ_lille.cristal.emeraude.n2s3.core.actors.{ShapelessSpike, WeightedSpike}
 import fr.univ_lille.cristal.emeraude.n2s3.core.event.{NeuronFireEvent, NeuronFireResponse}
 import fr.univ_lille.cristal.emeraude.n2s3.core.models.properties.{MembraneThresholdFloat, MembraneThresholdType, MembraneThresholdTypeEnum, SynapticWeightFloat}
 import fr.univ_lille.cristal.emeraude.n2s3.core.models.synapse.FloatSynapse
 import fr.univ_lille.cristal.emeraude.n2s3.models.qbg._
+import fr.univ_lille.cristal.emeraude.n2s3.support.actors.Message
 
 import scala.collection.mutable
 import scala.math._
diff --git a/n2s3/src/main/scala/fr/univ_lille/cristal/emeraude/n2s3/models/bio/Synapse.scala b/n2s3/src/main/scala/fr/univ_lille/cristal/emeraude/n2s3/models/bio/Synapse.scala
index 94edae46..bf0af6c6 100644
--- a/n2s3/src/main/scala/fr/univ_lille/cristal/emeraude/n2s3/models/bio/Synapse.scala
+++ b/n2s3/src/main/scala/fr/univ_lille/cristal/emeraude/n2s3/models/bio/Synapse.scala
@@ -6,7 +6,8 @@ import fr.univ_lille.cristal.emeraude.n2s3.core.models.synapse.FloatSynapse
 import fr.univ_lille.cristal.emeraude.n2s3.core.{NeuronConnection, Time}
 import fr.univ_lille.cristal.emeraude.n2s3.core.NeuronConnection.ConnectionEnds
 import fr.univ_lille.cristal.emeraude.n2s3.core.UnitCast._
-import fr.univ_lille.cristal.emeraude.n2s3.core.actors.{Message, ShapelessSpike, WeightedSpike}
+import fr.univ_lille.cristal.emeraude.n2s3.core.actors.{ShapelessSpike, WeightedSpike}
+import fr.univ_lille.cristal.emeraude.n2s3.support.actors.Message
 
 import scala.util.Random
 
diff --git a/n2s3/src/main/scala/fr/univ_lille/cristal/emeraude/n2s3/models/integrate_and_fire/IntegrateAndFireNeuron.scala b/n2s3/src/main/scala/fr/univ_lille/cristal/emeraude/n2s3/models/integrate_and_fire/IntegrateAndFireNeuron.scala
index 26786ff9..dc66342c 100644
--- a/n2s3/src/main/scala/fr/univ_lille/cristal/emeraude/n2s3/models/integrate_and_fire/IntegrateAndFireNeuron.scala
+++ b/n2s3/src/main/scala/fr/univ_lille/cristal/emeraude/n2s3/models/integrate_and_fire/IntegrateAndFireNeuron.scala
@@ -3,8 +3,8 @@ package fr.univ_lille.cristal.emeraude.n2s3.models.integrate_and_fire
 import fr.univ_lille.cristal.emeraude.n2s3.core.GlobalTypesAlias._
 import fr.univ_lille.cristal.emeraude.n2s3.core.Neuron.NeuronEnds
 import fr.univ_lille.cristal.emeraude.n2s3.core._
-import fr.univ_lille.cristal.emeraude.n2s3.core.actors.Message
 import fr.univ_lille.cristal.emeraude.n2s3.core.event.{NeuronFireEvent, NeuronFireResponse}
+import fr.univ_lille.cristal.emeraude.n2s3.support.actors.Message
 
 /**
   * Created by falezp on 03/06/16.
diff --git a/n2s3/src/main/scala/fr/univ_lille/cristal/emeraude/n2s3/models/izhikevich/Neuron.scala b/n2s3/src/main/scala/fr/univ_lille/cristal/emeraude/n2s3/models/izhikevich/Neuron.scala
index 7bb4bdd4..a99ff9ca 100644
--- a/n2s3/src/main/scala/fr/univ_lille/cristal/emeraude/n2s3/models/izhikevich/Neuron.scala
+++ b/n2s3/src/main/scala/fr/univ_lille/cristal/emeraude/n2s3/models/izhikevich/Neuron.scala
@@ -6,14 +6,14 @@ package fr.univ_lille.cristal.emeraude.n2s3.models.izhikevich
 
 import fr.univ_lille.cristal.emeraude.n2s3.core
 import fr.univ_lille.cristal.emeraude.n2s3.core.GlobalTypesAlias.Timestamp
-import fr.univ_lille.cristal.emeraude.n2s3.core._
 import fr.univ_lille.cristal.emeraude.n2s3.core.Neuron.{Inhibition, NeuronEnds}
-import fr.univ_lille.cristal.emeraude.n2s3.core.models.synapse.FloatSynapse
-import fr.univ_lille.cristal.emeraude.n2s3.models.qbg.{BackwardSpike, QBGNeuronConnection}
-import fr.univ_lille.cristal.emeraude.n2s3.core.UnitCast._
-import fr.univ_lille.cristal.emeraude.n2s3.core.actors.{Message, ShapelessSpike, WeightedSpike}
+import fr.univ_lille.cristal.emeraude.n2s3.core._
+import fr.univ_lille.cristal.emeraude.n2s3.core.actors.{ShapelessSpike, WeightedSpike}
 import fr.univ_lille.cristal.emeraude.n2s3.core.event.{NeuronFireEvent, NeuronFireResponse}
 import fr.univ_lille.cristal.emeraude.n2s3.core.models.properties.SynapticWeightFloat
+import fr.univ_lille.cristal.emeraude.n2s3.core.models.synapse.FloatSynapse
+import fr.univ_lille.cristal.emeraude.n2s3.models.qbg.{BackwardSpike, QBGNeuronConnection}
+import fr.univ_lille.cristal.emeraude.n2s3.support.actors.Message
 
 import scala.util.Random
 
diff --git a/n2s3/src/main/scala/fr/univ_lille/cristal/emeraude/n2s3/models/izhikevich/Synapse.scala b/n2s3/src/main/scala/fr/univ_lille/cristal/emeraude/n2s3/models/izhikevich/Synapse.scala
index 3ec65102..6e67fa20 100644
--- a/n2s3/src/main/scala/fr/univ_lille/cristal/emeraude/n2s3/models/izhikevich/Synapse.scala
+++ b/n2s3/src/main/scala/fr/univ_lille/cristal/emeraude/n2s3/models/izhikevich/Synapse.scala
@@ -6,8 +6,9 @@ package fr.univ_lille.cristal.emeraude.n2s3.models.izhikevich
 
 import fr.univ_lille.cristal.emeraude.n2s3.core.GlobalTypesAlias._
 import fr.univ_lille.cristal.emeraude.n2s3.core.NeuronConnection.ConnectionEnds
-import fr.univ_lille.cristal.emeraude.n2s3.core.actors.{Message, ShapelessSpike, WeightedSpike}
+import fr.univ_lille.cristal.emeraude.n2s3.core.actors.{ShapelessSpike, WeightedSpike}
 import fr.univ_lille.cristal.emeraude.n2s3.core.NeuronConnection
+import fr.univ_lille.cristal.emeraude.n2s3.support.actors.Message
 
 import scala.util.Random
 
diff --git a/n2s3/src/main/scala/fr/univ_lille/cristal/emeraude/n2s3/models/qbg/QBGNeuron.scala b/n2s3/src/main/scala/fr/univ_lille/cristal/emeraude/n2s3/models/qbg/QBGNeuron.scala
index 864e59d9..fb936a74 100644
--- a/n2s3/src/main/scala/fr/univ_lille/cristal/emeraude/n2s3/models/qbg/QBGNeuron.scala
+++ b/n2s3/src/main/scala/fr/univ_lille/cristal/emeraude/n2s3/models/qbg/QBGNeuron.scala
@@ -8,10 +8,11 @@ import fr.univ_lille.cristal.emeraude.n2s3.core.GlobalTypesAlias._
 import fr.univ_lille.cristal.emeraude.n2s3.core.Neuron.{Inhibition, NeuronEnds}
 import fr.univ_lille.cristal.emeraude.n2s3.core.UnitCast._
 import fr.univ_lille.cristal.emeraude.n2s3.core._
-import fr.univ_lille.cristal.emeraude.n2s3.core.actors.{Message, NetworkEntityActor, ShapelessSpike, WeightedSpike}
+import fr.univ_lille.cristal.emeraude.n2s3.core.actors.{NetworkEntityActor, ShapelessSpike, WeightedSpike}
 import fr.univ_lille.cristal.emeraude.n2s3.core.event.{NeuronFireEvent, NeuronFireResponse}
 import fr.univ_lille.cristal.emeraude.n2s3.core.models.properties.{MembraneThresholdTypeEnum, _}
 import fr.univ_lille.cristal.emeraude.n2s3.core.models.synapse.FloatSynapse
+import fr.univ_lille.cristal.emeraude.n2s3.support.actors.Message
 import squants.electro.ElectricPotential
 import squants.electro.ElectricPotentialConversions.ElectricPotentialConversions
 
diff --git a/n2s3/src/main/scala/fr/univ_lille/cristal/emeraude/n2s3/models/qbg/QBGSynapse.scala b/n2s3/src/main/scala/fr/univ_lille/cristal/emeraude/n2s3/models/qbg/QBGSynapse.scala
index a1bb2c95..9359b274 100644
--- a/n2s3/src/main/scala/fr/univ_lille/cristal/emeraude/n2s3/models/qbg/QBGSynapse.scala
+++ b/n2s3/src/main/scala/fr/univ_lille/cristal/emeraude/n2s3/models/qbg/QBGSynapse.scala
@@ -9,7 +9,8 @@ import fr.univ_lille.cristal.emeraude.n2s3.core.Neuron.Inhibition
 import fr.univ_lille.cristal.emeraude.n2s3.core.NeuronConnection.ConnectionEnds
 import fr.univ_lille.cristal.emeraude.n2s3.core.models.synapse.FloatSynapse
 import fr.univ_lille.cristal.emeraude.n2s3.core._
-import fr.univ_lille.cristal.emeraude.n2s3.core.actors.{Message, ShapelessSpike, WeightedSpike}
+import fr.univ_lille.cristal.emeraude.n2s3.core.actors.{ShapelessSpike, WeightedSpike}
+import fr.univ_lille.cristal.emeraude.n2s3.support.actors.Message
 
 import scala.util.Random
 
diff --git a/n2s3/src/main/scala/fr/univ_lille/cristal/emeraude/n2s3/models/qbg/SharedConnection.scala b/n2s3/src/main/scala/fr/univ_lille/cristal/emeraude/n2s3/models/qbg/SharedConnection.scala
index 10b37e53..de6b3ceb 100644
--- a/n2s3/src/main/scala/fr/univ_lille/cristal/emeraude/n2s3/models/qbg/SharedConnection.scala
+++ b/n2s3/src/main/scala/fr/univ_lille/cristal/emeraude/n2s3/models/qbg/SharedConnection.scala
@@ -6,8 +6,9 @@ package fr.univ_lille.cristal.emeraude.n2s3.models.qbg
 
 import fr.univ_lille.cristal.emeraude.n2s3.core.GlobalTypesAlias._
 import fr.univ_lille.cristal.emeraude.n2s3.core.NeuronConnection.ConnectionEnds
-import fr.univ_lille.cristal.emeraude.n2s3.core.actors.{Message, ShapelessSpike, WeightedSpike}
+import fr.univ_lille.cristal.emeraude.n2s3.core.actors.{ShapelessSpike, WeightedSpike}
 import fr.univ_lille.cristal.emeraude.n2s3.core.models.convolutional.SharedNeuronConnection
+import fr.univ_lille.cristal.emeraude.n2s3.support.actors.Message
 
 import scala.util.Random
 
diff --git a/n2s3/src/main/scala/fr/univ_lille/cristal/emeraude/n2s3/models/ternary_synapse/Neuron.scala b/n2s3/src/main/scala/fr/univ_lille/cristal/emeraude/n2s3/models/ternary_synapse/Neuron.scala
index 95d414a7..c8cf2955 100644
--- a/n2s3/src/main/scala/fr/univ_lille/cristal/emeraude/n2s3/models/ternary_synapse/Neuron.scala
+++ b/n2s3/src/main/scala/fr/univ_lille/cristal/emeraude/n2s3/models/ternary_synapse/Neuron.scala
@@ -12,7 +12,7 @@ import fr.univ_lille.cristal.emeraude.n2s3.core.Neuron.NeuronEnds
 import fr.univ_lille.cristal.emeraude.n2s3.core.Neuron.{Inhibition, NeuronEnds}
 import fr.univ_lille.cristal.emeraude.n2s3.core.NeuronConnection.ConnectionEnds
 import fr.univ_lille.cristal.emeraude.n2s3.core.UnitCast._
-import fr.univ_lille.cristal.emeraude.n2s3.core.actors.{Message, ShapelessSpike, WeightedSpike}
+import fr.univ_lille.cristal.emeraude.n2s3.core.actors.{ShapelessSpike, WeightedSpike}
 import fr.univ_lille.cristal.emeraude.n2s3.core.event.{NeuronFireEvent, NeuronFireResponse}
 import fr.univ_lille.cristal.emeraude.n2s3.core.models.properties._
 import fr.univ_lille.cristal.emeraude.n2s3.core.models.synapse.FloatSynapse
@@ -21,6 +21,7 @@ import fr.univ_lille.cristal.emeraude.n2s3.core.models.synapse.{FloatSynapse, We
 import fr.univ_lille.cristal.emeraude.n2s3.features.learning.{LTDUntil, LTPUntil}
 import fr.univ_lille.cristal.emeraude.n2s3.features.logging.STDPImageGenerator
 import fr.univ_lille.cristal.emeraude.n2s3.models.qbg.{NeuronPotentialEvent, NeuronPotentialResponse, QBGParameters}
+import fr.univ_lille.cristal.emeraude.n2s3.support.actors.Message
 import squants.electro.ElectricPotential
 import squants.electro.ElectricPotentialConversions.ElectricPotentialConversions
 
diff --git a/n2s3/src/main/scala/fr/univ_lille/cristal/emeraude/n2s3/models/ternary_synapse/Synapse.scala b/n2s3/src/main/scala/fr/univ_lille/cristal/emeraude/n2s3/models/ternary_synapse/Synapse.scala
index 2dec150c..8c6fb213 100644
--- a/n2s3/src/main/scala/fr/univ_lille/cristal/emeraude/n2s3/models/ternary_synapse/Synapse.scala
+++ b/n2s3/src/main/scala/fr/univ_lille/cristal/emeraude/n2s3/models/ternary_synapse/Synapse.scala
@@ -6,8 +6,9 @@ import fr.univ_lille.cristal.emeraude.n2s3.core.NeuronConnection
 import fr.univ_lille.cristal.emeraude.n2s3.core.NeuronConnection.ConnectionEnds
 import fr.univ_lille.cristal.emeraude.n2s3.core.models.synapse.FloatSynapse
 import fr.univ_lille.cristal.emeraude.n2s3.core.UnitCast._
-import fr.univ_lille.cristal.emeraude.n2s3.core.actors.{Message, ShapelessSpike, WeightedSpike}
+import fr.univ_lille.cristal.emeraude.n2s3.core.actors.{ShapelessSpike, WeightedSpike}
 import fr.univ_lille.cristal.emeraude.n2s3.core.Time
+import fr.univ_lille.cristal.emeraude.n2s3.support.actors.Message
 
 import scala.util.Random
 
diff --git a/n2s3/src/main/scala/fr/univ_lille/cristal/emeraude/n2s3/core/actors/Message.scala b/n2s3/src/main/scala/fr/univ_lille/cristal/emeraude/n2s3/support/actors/Message.scala
similarity index 89%
rename from n2s3/src/main/scala/fr/univ_lille/cristal/emeraude/n2s3/core/actors/Message.scala
rename to n2s3/src/main/scala/fr/univ_lille/cristal/emeraude/n2s3/support/actors/Message.scala
index 2487c3ae..72e60f83 100644
--- a/n2s3/src/main/scala/fr/univ_lille/cristal/emeraude/n2s3/core/actors/Message.scala
+++ b/n2s3/src/main/scala/fr/univ_lille/cristal/emeraude/n2s3/support/actors/Message.scala
@@ -1,4 +1,4 @@
-package fr.univ_lille.cristal.emeraude.n2s3.core.actors
+package fr.univ_lille.cristal.emeraude.n2s3.support.actors
 
 /******************************************************************************************************
  * In N2S3 actors are used to implements neurons. Neurons can exchanged messages between each other.
diff --git a/n2s3/src/main/scala/fr/univ_lille/cristal/emeraude/n2s3/support/actors/MessageSynchronizer.scala b/n2s3/src/main/scala/fr/univ_lille/cristal/emeraude/n2s3/support/actors/MessageSynchronizer.scala
index 759d750a..73b07efd 100644
--- a/n2s3/src/main/scala/fr/univ_lille/cristal/emeraude/n2s3/support/actors/MessageSynchronizer.scala
+++ b/n2s3/src/main/scala/fr/univ_lille/cristal/emeraude/n2s3/support/actors/MessageSynchronizer.scala
@@ -6,7 +6,6 @@ import akka.util.Timeout
 import fr.univ_lille.cristal.emeraude.n2s3.core
 import fr.univ_lille.cristal.emeraude.n2s3.core.actors.NetworkEntityActor.ImplicitSenderRoutedMessage
 import fr.univ_lille.cristal.emeraude.n2s3.core.NetworkEntityPath
-import fr.univ_lille.cristal.emeraude.n2s3.core.actors.Message
 
 import scala.collection.mutable
 import scala.concurrent.duration.{FiniteDuration, _}
diff --git a/n2s3/src/main/scala/fr/univ_lille/cristal/emeraude/n2s3/support/io/Input.scala b/n2s3/src/main/scala/fr/univ_lille/cristal/emeraude/n2s3/support/io/Input.scala
index d731095b..55850ec6 100644
--- a/n2s3/src/main/scala/fr/univ_lille/cristal/emeraude/n2s3/support/io/Input.scala
+++ b/n2s3/src/main/scala/fr/univ_lille/cristal/emeraude/n2s3/support/io/Input.scala
@@ -1,7 +1,7 @@
 package fr.univ_lille.cristal.emeraude.n2s3.support.io
 
 import fr.univ_lille.cristal.emeraude.n2s3.core.GlobalTypesAlias.Timestamp
-import fr.univ_lille.cristal.emeraude.n2s3.core.actors.Message
+import fr.univ_lille.cristal.emeraude.n2s3.support.actors.Message
 
 /**
   * Created by guille on 5/26/16.
diff --git a/n2s3/src/test/scala/fr/univ_lille/cristal/emeraude/n2s3/core/MockNeuron.scala b/n2s3/src/test/scala/fr/univ_lille/cristal/emeraude/n2s3/core/MockNeuron.scala
index 04df2d65..fbc9ce94 100644
--- a/n2s3/src/test/scala/fr/univ_lille/cristal/emeraude/n2s3/core/MockNeuron.scala
+++ b/n2s3/src/test/scala/fr/univ_lille/cristal/emeraude/n2s3/core/MockNeuron.scala
@@ -3,7 +3,8 @@ package fr.univ_lille.cristal.emeraude.n2s3.core
 import fr.univ_lille.cristal.emeraude.n2s3.core.GlobalTypesAlias._
 import fr.univ_lille.cristal.emeraude.n2s3.core.Neuron.NeuronEnds
 import fr.univ_lille.cristal.emeraude.n2s3.core.NeuronConnection.ConnectionEnds
-import fr.univ_lille.cristal.emeraude.n2s3.core.actors.{Message, NetworkEntityActor}
+import fr.univ_lille.cristal.emeraude.n2s3.core.actors.NetworkEntityActor
+import fr.univ_lille.cristal.emeraude.n2s3.support.actors.Message
 
 /**
   * Created by falezp on 07/04/16.
diff --git a/n2s3/src/test/scala/fr/univ_lille/cristal/emeraude/n2s3/core/TestNeuronActor.scala b/n2s3/src/test/scala/fr/univ_lille/cristal/emeraude/n2s3/core/TestNeuronActor.scala
index dd925a37..a98dfc50 100644
--- a/n2s3/src/test/scala/fr/univ_lille/cristal/emeraude/n2s3/core/TestNeuronActor.scala
+++ b/n2s3/src/test/scala/fr/univ_lille/cristal/emeraude/n2s3/core/TestNeuronActor.scala
@@ -6,8 +6,9 @@ import akka.util.Timeout
 import fr.univ_lille.cristal.emeraude.n2s3.UnitActorSpec
 import fr.univ_lille.cristal.emeraude.n2s3.core.GlobalTypesAlias.Timestamp
 import fr.univ_lille.cristal.emeraude.n2s3.core.Neuron.{NeuronEnds, NeuronMessage}
-import fr.univ_lille.cristal.emeraude.n2s3.core.actors.{Message, NetworkEntityActor, ShapelessSpike}
+import fr.univ_lille.cristal.emeraude.n2s3.core.actors.{NetworkEntityActor, ShapelessSpike}
 import fr.univ_lille.cristal.emeraude.n2s3.core.models.properties.MembraneThresholdPotential
+import fr.univ_lille.cristal.emeraude.n2s3.support.actors.Message
 import squants.electro.ElectricPotential
 import squants.electro.ElectricPotentialConversions.ElectricPotentialConversions
 
diff --git a/n2s3/src/test/scala/fr/univ_lille/cristal/emeraude/n2s3/core/TestSynchronizer.scala b/n2s3/src/test/scala/fr/univ_lille/cristal/emeraude/n2s3/core/TestSynchronizer.scala
index 91ccc002..9c21157f 100644
--- a/n2s3/src/test/scala/fr/univ_lille/cristal/emeraude/n2s3/core/TestSynchronizer.scala
+++ b/n2s3/src/test/scala/fr/univ_lille/cristal/emeraude/n2s3/core/TestSynchronizer.scala
@@ -6,13 +6,13 @@
   
 package fr.univ_lille.cristal.emeraude.n2s3.core
 
-import akka.actor.{Actor, ActorRef, ActorSystem}
+import akka.actor.{Actor, ActorRef}
 import akka.testkit.TestActorRef
-import fr.univ_lille.cristal.emeraude.n2s3.core.Neuron.NeuronMessage
-import fr.univ_lille.cristal.emeraude.n2s3.{UnitActorSpec, UnitSpec}
+import fr.univ_lille.cristal.emeraude.n2s3.UnitActorSpec
 import fr.univ_lille.cristal.emeraude.n2s3.core.GlobalTypesAlias.Timestamp
-import fr.univ_lille.cristal.emeraude.n2s3.core.actors.{Done, Message, Spike}
-import org.scalatest.Matchers
+import fr.univ_lille.cristal.emeraude.n2s3.core.Neuron.NeuronMessage
+import fr.univ_lille.cristal.emeraude.n2s3.core.actors.{Done, Spike}
+import fr.univ_lille.cristal.emeraude.n2s3.support.actors.Message
 
 /**
   * TestSuite for the Synchronizer.
diff --git a/n2s3/src/test/scala/fr/univ_lille/cristal/emeraude/n2s3/core/synchronization/TestSynchronizedNeuronRef.scala b/n2s3/src/test/scala/fr/univ_lille/cristal/emeraude/n2s3/core/synchronization/TestSynchronizedNeuronRef.scala
index 0480ef46..6cc4c5b3 100644
--- a/n2s3/src/test/scala/fr/univ_lille/cristal/emeraude/n2s3/core/synchronization/TestSynchronizedNeuronRef.scala
+++ b/n2s3/src/test/scala/fr/univ_lille/cristal/emeraude/n2s3/core/synchronization/TestSynchronizedNeuronRef.scala
@@ -5,11 +5,10 @@ import akka.testkit.TestActorRef
 import fr.univ_lille.cristal.emeraude.n2s3.UnitSpec
 import fr.univ_lille.cristal.emeraude.n2s3.core.actors.NetworkEntityActor.ImplicitSenderRoutedMessage
 import fr.univ_lille.cristal.emeraude.n2s3.core.Neuron.NeuronMessage
-import fr.univ_lille.cristal.emeraude.n2s3.core.actors.Message
 import fr.univ_lille.cristal.emeraude.n2s3.core.ExternalNetworkEntityReference
 import fr.univ_lille.cristal.emeraude.n2s3.features.builder._
 import fr.univ_lille.cristal.emeraude.n2s3.models.qbg.QBGNeuron
-import fr.univ_lille.cristal.emeraude.n2s3.support.actors.{ActorCompanion, PropsBuilder}
+import fr.univ_lille.cristal.emeraude.n2s3.support.actors.{ActorCompanion, Message, PropsBuilder}
 
 /**
   * Created by guille on 8/5/16.
diff --git a/n2s3_examples/src/main/scala/fr/univ_lille/cristal/emeraude/n2s3/apps/models/PassiveNeuron.scala b/n2s3_examples/src/main/scala/fr/univ_lille/cristal/emeraude/n2s3/apps/models/PassiveNeuron.scala
index 3c499f7f..75ce6386 100644
--- a/n2s3_examples/src/main/scala/fr/univ_lille/cristal/emeraude/n2s3/apps/models/PassiveNeuron.scala
+++ b/n2s3_examples/src/main/scala/fr/univ_lille/cristal/emeraude/n2s3/apps/models/PassiveNeuron.scala
@@ -3,8 +3,8 @@ package fr.univ_lille.cristal.emeraude.n2s3.apps.models
 import fr.univ_lille.cristal.emeraude.n2s3.core.GlobalTypesAlias.Timestamp
 import fr.univ_lille.cristal.emeraude.n2s3.core.Neuron.NeuronEnds
 import fr.univ_lille.cristal.emeraude.n2s3.core.NeuronConnection.ConnectionEnds
-import fr.univ_lille.cristal.emeraude.n2s3.core.actors.Message
 import fr.univ_lille.cristal.emeraude.n2s3.core.{Neuron, NeuronConnection}
+import fr.univ_lille.cristal.emeraude.n2s3.support.actors.Message
 
 /**
   * Implementation of a neuron which just resend all received messages
-- 
GitLab