diff --git a/NPSimulation/CMakeLists.txt b/NPSimulation/CMakeLists.txt
index 4c27d15320662ac88594899832787c87bd03f545..161a1a8d4a793cf89914f2954fb869fafb758083 100644
--- a/NPSimulation/CMakeLists.txt
+++ b/NPSimulation/CMakeLists.txt
@@ -55,6 +55,7 @@ if(rdet)
 endif()
 
 # Add root to the link and include directories
+set(CMAKE_CXX_STANDARD 17)
 
 if(Geant4_gdml_FOUND)  
   set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -DNPS_GDML")     
diff --git a/NPSimulation/Core/Target.cc b/NPSimulation/Core/Target.cc
index 60f33d60cdfe2e22c5b521224ec02cadd3bbe733..6264f354e438966d49bcb5d8f0a2d412f3edad64 100644
--- a/NPSimulation/Core/Target.cc
+++ b/NPSimulation/Core/Target.cc
@@ -52,6 +52,7 @@ using namespace CLHEP ;
 #include "MaterialManager.hh"
 #include "Decay.hh"
 #include "FissionDecay.hh"
+#include "ThreeBody.hh"
 // NPL
 #include "NPOptionManager.h"
 #include "NPInputParser.h"
@@ -469,6 +470,9 @@ void Target::SetReactionRegion(){
   m_ReactionModel.push_back(fsm); 
   fsm = new NPS::FissionDecay("FissionDecay",m_ReactionRegion);
   m_ReactionModel.push_back(fsm); 
+  fsm = new NPS::ThreeBody("ThreeBody",m_ReactionRegion);
+  ((NPS::ThreeBody*) fsm)->SetStepSize(m_TargetThickness/100.);
+  m_ReactionModel.push_back(fsm); 
 
 }
 
diff --git a/NPSimulation/Process/CMakeLists.txt b/NPSimulation/Process/CMakeLists.txt
index e1a126cd05d664e8738110b80d1f051c9a27d47f..23f0d109d5211d2ad4911f51ccad6f0aee358f28 100644
--- a/NPSimulation/Process/CMakeLists.txt
+++ b/NPSimulation/Process/CMakeLists.txt
@@ -1,17 +1,17 @@
 if(Geant4_VERSION_MAJOR GREATER 10)
   message("Compiling without IonIonElastic")
-  add_library(NPSProcess OBJECT FissionDecay.cc Decay.cc BeamReaction.cc FastDriftElectron.cc PhysicsList.cc G4DriftElectron.cc G4IonizationWithDE.cc G4DriftElectronPhysics.cc G4DEAbsorption.cc G4DEAmplification.cc G4DETransport.cc menate_R.cc )
+  add_library(NPSProcess OBJECT ThreeBody.cc FissionDecay.cc Decay.cc BeamReaction.cc FastDriftElectron.cc PhysicsList.cc G4DriftElectron.cc G4IonizationWithDE.cc G4DriftElectronPhysics.cc G4DEAbsorption.cc G4DEAmplification.cc G4DETransport.cc menate_R.cc )
     add_definitions(-DGEANT4_11)
 else()
   if(Geant4_VERSION_MAJOR GREATER 9)
     if(Geant4_VERSION_MINOR GREATER 4)
     message("Compiling with NeutronHPphysics")
-    add_library(NPSProcess OBJECT FissionDecay.cc Decay.cc BeamReaction.cc FastDriftElectron.cc NPIonIonInelasticPhysic.cc PhysicsList.cc G4DriftElectron.cc G4IonizationWithDE.cc G4DriftElectronPhysics.cc G4DEAbsorption.cc G4DEAmplification.cc G4DETransport.cc menate_R.cc NeutronHPphysics.cc NeutronHPMessenger.cc)
+    add_library(NPSProcess OBJECT ThreeBody.cc FissionDecay.cc Decay.cc BeamReaction.cc FastDriftElectron.cc NPIonIonInelasticPhysic.cc PhysicsList.cc G4DriftElectron.cc G4IonizationWithDE.cc G4DriftElectronPhysics.cc G4DEAbsorption.cc G4DEAmplification.cc G4DETransport.cc menate_R.cc NeutronHPphysics.cc NeutronHPMessenger.cc)
       add_definitions(-DUSE_NEUTRONHP)
     else ()
     
     message("Compiling WITHOUT NeutronHPphysics, install geant4 10.5 or greater for this physics list")
-    add_library(NPSProcess OBJECT FissionDecay.cc Decay.cc BeamReaction.cc FastDriftElectron.cc NPIonIonInelasticPhysic.cc PhysicsList.cc G4DriftElectron.cc G4IonizationWithDE.cc G4DriftElectronPhysics.cc G4DEAbsorption.cc G4DEAmplification.cc G4DETransport.cc menate_R.cc)
+    add_library(NPSProcess OBJECT ThreeBody.cc FissionDecay.cc Decay.cc BeamReaction.cc FastDriftElectron.cc NPIonIonInelasticPhysic.cc PhysicsList.cc G4DriftElectron.cc G4IonizationWithDE.cc G4DriftElectronPhysics.cc G4DEAbsorption.cc G4DEAmplification.cc G4DETransport.cc menate_R.cc)
     endif()
    endif()
 endif()