diff --git a/src/.MCHybridSOG.h.kate-swp b/src/.MCHybridSOG.h.kate-swp
new file mode 100644
index 0000000000000000000000000000000000000000..a65057426854c2e2438dac15c8c74a0492744abb
Binary files /dev/null and b/src/.MCHybridSOG.h.kate-swp differ
diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
index 2f27223ccf21036a6f7ba53785b85bcf7d745468..4231a5f4049a99848bcad77aa9f95f6f12914afe 100644
--- a/src/CMakeLists.txt
+++ b/src/CMakeLists.txt
@@ -9,16 +9,27 @@ include_directories(${MPI_INCLUDE_PATH})
 find_package(OpenSSL)
 include_directories(${OPENSSL_INCLUDE_DIR})
 
-# include spot library
-add_library(spot STATIC IMPORTED)
-set_target_properties(spot PROPERTIES IMPORTED_LOCATION "${SPOT_DIR}/lib/libspot.a")
+include_directories("${CMAKE_SOURCE_DIR}/third-party/sylvan/src")
+
+
+add_library(spot SHARED IMPORTED) # or STATIC instead of SHARED
+set_target_properties(spot PROPERTIES
+  IMPORTED_LOCATION "/usr/lib/x86_64-linux-gnu/libspot.so"
+  INTERFACE_INCLUDE_DIRECTORIES "/usr/include/spot/"
+)
+
+add_library(bddx SHARED IMPORTED) # or STATIC instead of SHARED
+set_target_properties(bddx PROPERTIES
+  IMPORTED_LOCATION "/usr/lib/x86_64-linux-gnu/libbddx.so"
+  INTERFACE_INCLUDE_DIRECTORIES "/usr/include/spot/"
+)
+
+
+
 
-# include bddx library
-add_library(bddx STATIC IMPORTED)
-set_target_properties(bddx PROPERTIES IMPORTED_LOCATION "${SPOT_DIR}/lib/libbddx.a")
 
 # Hybrid SOG executable
-add_executable(pmc-sog main.cpp
+add_executable(hybrid-sog main.cpp
   NewNet.cpp
   NewNet.h
   CommonSOG.cpp
@@ -69,7 +80,7 @@ add_executable(pmc-sog main.cpp
   HybridKripkeState.h
   )
 
-target_link_libraries(pmc-sog
+target_link_libraries(hybrid-sog
   bddx
   spot
   sylvan
@@ -77,5 +88,3 @@ target_link_libraries(pmc-sog
   ${MPI_LIBRARIES}
   ${OPENSSL_LIBRARIES}
 )
-
-add_dependencies(pmc-sog SpotLibrary)
diff --git a/src/MCHybridSOG.cpp b/src/MCHybridSOG.cpp
index 1ed2bc9514f27cedf05c27c498cfda25fb125db2..c0d31b827933bc243cb8b51b62685e4a1d8edd7a 100644
--- a/src/MCHybridSOG.cpp
+++ b/src/MCHybridSOG.cpp
@@ -567,13 +567,10 @@ void MCHybridSOG::read_message()
              uint16_t id_p=i_agregate->getProcess();             
              memcpy(message+16,&id_p,2);            
              MPI_Send(message,22,MPI_BYTE,m_status.MPI_SOURCE, TAG_ACK_INITIAL, MPI_COMM_WORLD);
-             break;
-       
-        
-        
-        default:  cout<<"unknown received "<<m_status.MPI_TAG<<" by task "<<task_id<<endl;
+             break;        
+        /*default:  cout<<"unknown received "<<m_status.MPI_TAG<<" by task "<<task_id<<endl;
             //AbortTerm();
-            break;           
+            //break;    */       
         }
         
         MPI_Iprobe(MPI_ANY_SOURCE,MPI_ANY_TAG,MPI_COMM_WORLD,&flag,&m_status);
diff --git a/src/ModelCheckLace.cpp b/src/ModelCheckLace.cpp
index 2db8f3ee6a2f30fa8a5402b0a47d7751fe35f6b5..740269a8874e69f96aaf8ace39cb722bdbb18e81 100644
--- a/src/ModelCheckLace.cpp
+++ b/src/ModelCheckLace.cpp
@@ -33,7 +33,7 @@ void ModelCheckLace::preConfigure() {
     print_h(max);
     printf(" max.\n");
     LACE_ME;
-    sylvan_set_limits(max, 16, 2);
+    sylvan_set_limits(max, 16, 1);
     sylvan_init_package();
     sylvan_init_ldd();
     
@@ -58,7 +58,7 @@ void ModelCheckLace::preConfigure() {
         cout<<(*it2).first<<" : "<<(*it2).second<<endl;
     }*/
     //cout<<"Transitions observables :"<<endl;
-    Set::iterator it=m_observable.begin();
+    //Set::iterator it=m_observable.begin();
     /*for (; it!=m_observable.end(); it++)
     {
         cout<<*it<<"  ";
@@ -133,20 +133,16 @@ TASK_3 (MDD, Aggregate_epsilon_lace, MDD, From, Set*, nonObservable, vector<Tran
 {
     MDD M1;
     MDD M2=From;
-    int it=0;
-    /*lddmc_refs_pushptr(&M1);
-    lddmc_refs_pushptr(&M2);*/
-    cout<<"worker "<<lace_get_worker()->worker<<endl;
-    
+      
     do
     {
         M1=M2;
-        for(Set::const_iterator i=nonObservable->begin(); !(i==nonObservable->end()); i++)
+        for(Set::iterator i=nonObservable->begin(); !(i==nonObservable->end()); i++)
         {
             lddmc_refs_spawn(SPAWN(lddmc_firing_lace,M2,(*tb_relation)[(*i)].getMinus(),(*tb_relation)[(*i)].getPlus()));
         }
       
-        for(Set::const_iterator i=nonObservable->begin(); !(i==nonObservable->end()); i++)
+        for(Set::iterator i=nonObservable->begin(); !(i==nonObservable->end()); i++)
         {
             lddmc_refs_push(M1);
             lddmc_refs_push(M2);
@@ -155,6 +151,8 @@ TASK_3 (MDD, Aggregate_epsilon_lace, MDD, From, Set*, nonObservable, vector<Tran
             M2=lddmc_union(succ,M2);
             lddmc_refs_pop(3);
         }
+        cout<<"M1 :"<<M1<<endl;
+        cout<<"M2 :"<<M2<<endl;
 
     }
     while (M1!=M2);
@@ -237,7 +235,7 @@ LDDState * ModelCheckLace::getInitialMetaState()
     // Compute successors
     unsigned int onb_it=0;
     Set::iterator iter=fire.begin();
-    int j=0;
+    
     while(iter!=fire.end())
     {
         
diff --git a/src/main.cpp b/src/main.cpp
index 0975099083c9bc96c38003e88f3441a4c01e095a..eca281346f06e7a281f69f555b46f53ee8660f65 100644
--- a/src/main.cpp
+++ b/src/main.cpp
@@ -349,19 +349,8 @@ int main(int argc, char** argv)
 
                     auto d = spot::make_bdd_dict();
                     spot::twa_graph_ptr af = spot::translator(d).run(not_f);
-
-                    /*         spot::twa_graph_ptr k =spot::make_twa_graph(std::make_shared<HybridKripke>(d,Rnewnet.getListTransitionAP(),Rnewnet.getListPlaceAP(),Rnewnet),spot::twa::prop_set::all(), true);
-                               cout<<"finished...."<<endl;
-
-
-                               fstream file;
-                               string st(argv[3]);
-                               st+=".dot";
-                               file.open(st.c_str(),fstream::out);
-                               spot::print_dot(file, k,"ka");
-                               file.close(); */
+                
                     double tps;
-
                     auto t1 = std::chrono::high_resolution_clock::now();
                     auto k =
                         std::make_shared<HybridKripke>(d,Rnewnet.getListTransitionAP(),Rnewnet.getListPlaceAP(),Rnewnet);
@@ -372,9 +361,7 @@ int main(int argc, char** argv)
                         std::cout << "temps de verification "
                                   << std::chrono::duration_cast<std::chrono::milliseconds>(t2-t1).count()
                                   << " milliseconds\n";
-
                         cout<<"=================================="<<endl;
-
                     }
                     else
                     {
@@ -385,27 +372,19 @@ int main(int argc, char** argv)
                                   << " milliseconds\n";
 
                     }
-
                 }
-
             }
-
-
         }
         else
-        {
-            //cout<<" sequential version using Sylvan : 1 with BuDDy : 2 \n" <<endl;
+        {           
             cout<<"*************Distibuted version******************* \n" <<endl;
             {
                 DistributedSOG DR(Rnewnet, bound);
                 LDDGraph g(nullptr);
                 DR.computeDSOG(g);
             }
-
-
         }
     }
-
     MPI_Finalize();
     return (EXIT_SUCCESS);
 }
diff --git a/src/sylvan_sog.c b/src/sylvan_sog.c
index 152af82e6f2189ba66ea1d811df06cb3a8b15e6e..80424bb29686816f757e0bb943266d1dc8e056f7 100644
--- a/src/sylvan_sog.c
+++ b/src/sylvan_sog.c
@@ -66,7 +66,8 @@ TASK_IMPL_3(MDD, lddmc_firing_lace, MDD, cmark, MDD, minus, MDD ,plus) {
         MDD left=lddmc_refs_sync(SYNC(lddmc_firing_lace));
         lddmc_refs_push(left);
         MDD result2 =
-                lddmc_makenode(l_values[count],left, lddmc_false);            
+                lddmc_makenode(l_values[count],left, lddmc_false);      
+        if (l_values[count]>5) printf("%d ",l_values[count]);
         lddmc_refs_push(result2);    
         result = lddmc_union( result, result2);  
         lddmc_refs_pop(3);