diff --git a/src/main/scala/org/scadcop/solver/decentralized/supervisor/Supervisor.scala b/src/main/scala/org/scadcop/solver/decentralized/supervisor/Supervisor.scala
index 17f7cc07ad1e21fd1bcbcbfb39cd251743f92393..833b3a203017989d3215f881dd6c610fa5944cb5 100644
--- a/src/main/scala/org/scadcop/solver/decentralized/supervisor/Supervisor.scala
+++ b/src/main/scala/org/scadcop/solver/decentralized/supervisor/Supervisor.scala
@@ -16,7 +16,7 @@ class Supervisor(val pb : DCOP, val algorithm: Algorithm) extends Actor with Sta
     with FSM[SupervisorState, SupervisorStatus] {
 
   var debug = true
-  var debugState = false
+  var debugState = true
   var trace = false
 
   var solver: ActorRef = context.parent // Reference to the distributed solver
@@ -102,7 +102,7 @@ class Supervisor(val pb : DCOP, val algorithm: Algorithm) extends Actor with Sta
     * Handles the message in the running state
     */
   when(RunningSupervisorState) {
-    
+
     // When an agent wants to start
     case Event(KickStartMe, status) =>
       sender ! ContinueAlgo
@@ -162,13 +162,13 @@ class Supervisor(val pb : DCOP, val algorithm: Algorithm) extends Actor with Sta
 
     //when it receives its own decison that it should continue
     case Event(ContinueAlgo, status) => {
-      //TODO reset the context it has
+      val newStatus: SupervisorStatus = status.SupervisorStatus(status)//TODO reset the context it has
       unstashall
       goto(RunningSupervisorState) using status
     }
 
     case Event(StopAlgo, status) => {
-      //TODO ???
+      goto(FinalSupervisorState) using status
     }
 
   }
diff --git a/src/main/scala/org/scadcop/solver/decentralized/supervisor/SupervisorStatus.scala b/src/main/scala/org/scadcop/solver/decentralized/supervisor/SupervisorStatus.scala
index 6db5e19b76a84750b440f2b0d8e649f1fe2a000c..b495ba829d027630b1c5372da92f459bc1f74b65 100644
--- a/src/main/scala/org/scadcop/solver/decentralized/supervisor/SupervisorStatus.scala
+++ b/src/main/scala/org/scadcop/solver/decentralized/supervisor/SupervisorStatus.scala
@@ -41,4 +41,14 @@ class SupervisorStatus(val readyVariables: Set[Variable] = Set(),
     * @todo modify it
     */
   def isTerminated : Boolean = ! isFirstRound
+
+  def resetContext(currStatus: SupervisorStatus): SupervisorStatus {
+    new SupervisorStatus(readyVariables,
+                       inactiveVariables,
+                       killedVariables,
+                       assignment new Context(),
+                       metric,
+                       isFirstRound
+                      )
+  }
 }