diff --git a/src/ModelCheckerTh.cpp b/src/ModelCheckerTh.cpp
index 55925ec7565590f222c4af507489bda1dbb8346c..b155c67f1c615de8d56d53c80dbf8f516f52b447 100644
--- a/src/ModelCheckerTh.cpp
+++ b/src/ModelCheckerTh.cpp
@@ -130,14 +130,11 @@ string ModelCheckerTh::getPlace(int pos)
 
 LDDState * ModelCheckerTh::buildInitialMetaState()
 {
-    Set fire;
 
     LDDState *c=new LDDState;
-    LDDState *reached_class;
-    MDD initial_meta_state(Accessible_epsilon(m_initalMarking));
+    cout<<"Initial marking : "<<m_initalMarking<<endl;
+    MDD initial_meta_state=Accessible_epsilon(m_initalMarking);
     ldd_refs_push(initial_meta_state);
-    fire=firable_obs(initial_meta_state);
-
     c->m_lddstate=initial_meta_state;
     m_graph->setInitialState(c);
     m_graph->insert(c);
@@ -175,7 +172,7 @@ void * ModelCheckerTh::Compute_successors()
 
         while (!m_st[id_thread].empty())
         {
-
+            cout<<"Entering thread "<<endl;
             nb_it++;
             m_terminaison[id_thread]=false;
             pthread_spin_lock(&m_spin_stack[id_thread]);
@@ -206,7 +203,6 @@ void * ModelCheckerTh::Compute_successors()
                     m_graph->addArc();
                     m_graph->insert(reached_class);
                     pthread_mutex_unlock(&m_graph_mutex);
-
                     agregate->Successors.insert(agregate->Successors.begin(),LDDEdge(reached_class,t));
                     reached_class->Predecessors.insert(reached_class->Predecessors.begin(),LDDEdge(agregate,t));
 
@@ -220,15 +216,10 @@ void * ModelCheckerTh::Compute_successors()
                     delete reached_class;
                 }
             }
-
-
         }
         m_terminaison[id_thread]=true;
-
-
-
     }
-    while (isNotTerminated());
+    while (1);
 
 }
 
@@ -267,7 +258,7 @@ void * ModelCheckerTh::threadHandler(void *context)
 
 void ModelCheckerTh::ComputeTh_Succ(){
 
-    cout << "number of threads "<<m_nb_thread<<endl;
+
     int rc;
  //   m_graph=&g;
  //   m_graph->setTransition(m_transitionName);
@@ -293,11 +284,11 @@ void ModelCheckerTh::ComputeTh_Succ(){
             cout<<"error: pthread_create, rc: "<<rc<<endl;
         }
     }
-    Compute_successors();
+   /* Compute_successors();
     for (int i = 0; i < m_nb_thread-1; i++)
     {
         pthread_join(m_list_thread[i], NULL);
-    }
+    }*/
 
 
 }
diff --git a/src/main.cpp b/src/main.cpp
index cab03898a3bf6020b3ecfd92b659bb76d0be2548..84156d77178fa6996d6ab9f8df7bbd7d2dd09a9d 100644
--- a/src/main.cpp
+++ b/src/main.cpp
@@ -193,8 +193,31 @@ int main(int argc, char** argv)
         // Initialize SOG builder
         ModelCheckerTh* mcl=new ModelCheckerTh(R,bound,nb_th);
         cout<<"Created"<<endl;
+        /********************************************************************/
+        spot::twa_graph_ptr kk =
+                    spot::make_twa_graph(std::make_shared<SogKripkeTh>(d,mcl,R.getListTransitionAP(),R.getListPlaceAP()),
+                                         spot::twa::prop_set::all(), true);
+
+
+                cout<<"SOG translated to SPOT succeeded.."<<endl;
+                cout<<"Want to save the graph in a dot file ?";
+                cin>>c;
+                if (c=='y')
+                {
+                    fstream file;
+
+                    string st(argv[3]);
+                    st+=".dot";
+                    file.open(st.c_str(),fstream::out);
+                    spot::print_dot(file, kk,"ka");
+                    file.close();
+                }
+
+        /********************************************************************/
+
+
         auto k =
-            std::make_shared<SogKripkeTh>(d,mcl,R.getListTransitionAP(),R.getListPlaceAP());                                 ;
+            std::make_shared<SogKripkeTh>(d,mcl,R.getListTransitionAP(),R.getListPlaceAP());                                             ;
         // Performing on the fly Modelchecking
         cout<<"Performing on the fly Modelchecking"<<endl;