diff --git a/CMakeLists.txt b/CMakeLists.txt
index 13772c164f5498fd9a5b05cf578c266a63c39947..880fd6c7132ae5006c14b02adbe838442d2bfed8 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -273,7 +273,7 @@ else(CBMROOT_MINIMAL)
   find_package(TBB)
   find_package(SSE)
 #  find_package(IWYU)
-  find_package(ZeroMQ)
+#  find_package(ZeroMQ)
 
   Set(Boost_NO_SYSTEM_PATHS TRUE)
   Set(Boost_NO_BOOST_CMAKE TRUE)
diff --git a/MQ/hitbuilder/CbmDeviceHitBuilderTof.cxx b/MQ/hitbuilder/CbmDeviceHitBuilderTof.cxx
index d750ce4184f06c4b03a24fc5b247a96d1ebd8402..12066ade69eb2a51929c77fd9723ee5719c34180 100644
--- a/MQ/hitbuilder/CbmDeviceHitBuilderTof.cxx
+++ b/MQ/hitbuilder/CbmDeviceHitBuilderTof.cxx
@@ -259,8 +259,7 @@ void CbmDeviceHitBuilderTof::InitTask() try {
   InitRootOutput();
 } catch (InitTaskError& e) {
   LOG(error) << e.what();
-  //ChangeState(ERROR_FOUND);
-  ChangeState(fair::mq::Transition(ERROR_FOUND));
+  ChangeState(fair::mq::Transition::ErrorFound);
 }
 
 bool CbmDeviceHitBuilderTof::IsChannelNameAllowed(std::string channelName) {
@@ -453,8 +452,7 @@ Bool_t CbmDeviceHitBuilderTof::InitContainers() {
               iGeoVersion = fGeoHandler->Init(isSimulation);
               if (k21a > iGeoVersion) {
                 LOG(error) << "Incompatible geometry !!!";
-                //ChangeState(STOP);
-                ChangeState(fair::mq::Transition(STOP));
+                ChangeState(fair::mq::Transition::Stop);
               }
               switch (iGeoVersion) {
                 case k14a: fTofId = new CbmTofDetectorId_v14a(); break;
@@ -656,8 +654,7 @@ bool CbmDeviceHitBuilderTof::HandleData(FairMQParts& parts, int /*index*/) {
       WriteHistograms();
       fOutRootFile->Close();
       LOG(info) << "File closed after " << fdEvent << " events. ";
-      //ChangeState(STOP);
-      ChangeState(fair::mq::Transition(STOP));
+      ChangeState(fair::mq::Transition::Stop);
     }
   }
   if (!FillHistos())
@@ -700,12 +697,9 @@ bool CbmDeviceHitBuilderTof::HandleMessage(FairMQMessagePtr& msg,
     ChangeState(END);
     LOG(info) << "Current State: " <<  FairMQStateMachine::GetCurrentStateName();
     */
-    //    ChangeState(fair::mq::Transition(internal_READY));
-    //ChangeState(fair::mq::Transition(internal_DEVICE_READY));
-    //ChangeState(fair::mq::Transition(internal_IDLE));
-    ChangeState(fair::mq::Transition(STOP));
+    ChangeState(fair::mq::Transition::Stop);
     std::this_thread::sleep_for(std::chrono::milliseconds(1000));
-    ChangeState(fair::mq::Transition(END));
+    ChangeState(fair::mq::Transition::End);
   }
 
   return true;
@@ -795,8 +789,7 @@ Bool_t CbmDeviceHitBuilderTof::InitCalibParameter() {
     if (NULL == fCalParFile) {
       LOG(error) << "InitCalibParameter: "
                  << "file " << fCalParFileName << " does not exist!";
-      //ChangeState(STOP);
-      ChangeState(fair::mq::Transition(STOP));
+      ChangeState(fair::mq::Transition::Stop);
     }
     /*
     gDirectory->Print();
@@ -2579,8 +2572,7 @@ Bool_t CbmDeviceHitBuilderTof::BuildHits() {
                                        fChannelInfo->GetY(),
                                        fChannelInfo->GetZ(),
                                        fNode);
-                    //ChangeState(STOP);
-                    ChangeState(fair::mq::Transition(STOP));
+                    ChangeState(fair::mq::Transition::Stop);
                   }
 
                   CbmTofDigi* xDigiA =
@@ -3419,8 +3411,7 @@ Bool_t CbmDeviceHitBuilderTof::AddNextChan(Int_t iSmType,
                        fChannelInfo->GetY(),
                        fChannelInfo->GetZ(),
                        cNode);
-    //ChangeState(STOP);
-    ChangeState(fair::mq::Transition(STOP));
+    ChangeState(fair::mq::Transition::Stop);
   }
 
   /*TGeoHMatrix* cMatrix = */ gGeoManager->GetCurrentMatrix();
@@ -3580,8 +3571,7 @@ Bool_t CbmDeviceHitBuilderTof::LoadGeometry() {
                          fChannelInfo->GetY(),
                          fChannelInfo->GetZ(),
                          fNode);
-      //ChangeState(STOP);
-      ChangeState(fair::mq::Transition(STOP));
+      ChangeState(fair::mq::Transition::Stop);
     }
     if (icell == 0) {
       TGeoHMatrix* cMatrix = gGeoManager->GetCurrentMatrix();
diff --git a/external/.gitignore b/external/.gitignore
index a0c1e79cd81d1cf7d5126826998951d6817c0bd1..95ce981061e9e672bcb76b01d85e66818d21b1b1 100644
--- a/external/.gitignore
+++ b/external/.gitignore
@@ -5,9 +5,7 @@ NicaFemto
 Vc
 cppzmq
 flib_dpb/flib_dpb
-flib_dpb_20
 ipc/ipc
-ipc_legacy/ipc
 jsroot
 googletest
 
diff --git a/external/InstallNicaFemto.cmake b/external/InstallNicaFemto.cmake
index ca62f01981002063f9b22a3d934f6a8d972f3e7d..f77aba58ff81f1dc816996d5e15e3a61e08759ce 100644
--- a/external/InstallNicaFemto.cmake
+++ b/external/InstallNicaFemto.cmake
@@ -21,6 +21,12 @@ If(ProjectUpdated)
   Message("NicaFemto source directory was changed so build directory was deleted")
 EndIf()
 
+If(USE_DIFFERENT_COMPILER)
+  Set(EXTRA_ARGS "-DUSE_DIFFERENT_COMPILER=TRUE")
+Else()
+  Set(EXTRA_ARGS "")
+EndIf()
+
 ExternalProject_Add(NICAFEMTO
   BUILD_IN_SOURCE 0
   SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/NicaFemto
@@ -37,6 +43,7 @@ ExternalProject_Add(NICAFEMTO
              -DROOTSYS=${SIMPATH}
 	     -DJSROOT=${CMAKE_CURRENT_SOURCE_DIR}
              -DCMAKE_VERBOSE_MAKEFILE:BOOL=ON
+             "${EXTRA_ARGS}"
   INSTALL_COMMAND  ${CMAKE_COMMAND} --build . --target install
 )
 
diff --git a/external/ipc/CMakeLists.txt b/external/ipc/CMakeLists.txt
index 1c0752f798bb81cb22da97d4084612e436885eae..1aa23c83d687435342e5e8287c9a8d53dc71c936 100644
--- a/external/ipc/CMakeLists.txt
+++ b/external/ipc/CMakeLists.txt
@@ -8,6 +8,7 @@ download_project_if_needed(PROJECT         fles_ipc
                            GIT_TAG         "e2d20813a74561cf58661b077c046c0da1f28288"
                            GIT_STASH       TRUE
                            SOURCE_DIR      ${CMAKE_CURRENT_SOURCE_DIR}/ipc
+                           PATCH_COMMAND   "patch -p1 < ${CMAKE_CURRENT_SOURCE_DIR}/ipc.patch"
                            TEST_FILE       CMakeLists.txt
                            )
 
diff --git a/external/ipc/ipc.patch b/external/ipc/ipc.patch
new file mode 100644
index 0000000000000000000000000000000000000000..bb86afb777e321613dbec4b457bdad5c2709a434
--- /dev/null
+++ b/external/ipc/ipc.patch
@@ -0,0 +1,13 @@
+diff --git a/lib/fles_ipc/StorableTimeslice.cpp b/lib/fles_ipc/StorableTimeslice.cpp
+index 8d7ca72..15a3e88 100644
+--- a/lib/fles_ipc/StorableTimeslice.cpp
++++ b/lib/fles_ipc/StorableTimeslice.cpp
+@@ -2,6 +2,8 @@
+ 
+ #include "StorableTimeslice.hpp"
+ 
++#include <algorithm>
++
+ namespace fles {
+ 
+ StorableTimeslice::StorableTimeslice(const StorableTimeslice& ts)
diff --git a/reco/tracking/global/CMakeLists.txt b/reco/tracking/global/CMakeLists.txt
index 2a5921fa9ce962db42e31f73a4ebf3536e722548..64cdd31b27c01b877e175a922245fdf65c2cb163 100755
--- a/reco/tracking/global/CMakeLists.txt
+++ b/reco/tracking/global/CMakeLists.txt
@@ -41,6 +41,7 @@ Set(LINK_DIRECTORIES
   ${FAIRROOT_LIBRARY_DIR}
   ${Boost_LIBRARY_DIRS}
   ${KFParticle_LIB_DIR}
+  ${Vc_LIB_DIR}
 )
  
 Link_Directories( ${LINK_DIRECTORIES})