diff --git a/bfps/cpp/full_code/NSVEparticles.cpp b/bfps/cpp/full_code/NSVEparticles.cpp
index 08b50226b47f19a3f9b723c5482e1f34f3648e24..9c0603b1606885874fe0e865131c03fe9546c85b 100644
--- a/bfps/cpp/full_code/NSVEparticles.cpp
+++ b/bfps/cpp/full_code/NSVEparticles.cpp
@@ -10,17 +10,17 @@ int NSVEparticles<rnumber>::initialize(void)
     this->NSVE<rnumber>::initialize();
 
     this->ps = particles_system_builder(
-                fs->cvelocity,              // (field object)
-                fs->kk,                     // (kspace object, contains dkx, dky, dkz)
+                this->fs->cvelocity,              // (field object)
+                this->fs->kk,                     // (kspace object, contains dkx, dky, dkz)
                 tracers0_integration_steps, // to check coherency between parameters and hdf input file (nb rhs)
                 (long long int)nparticles,  // to check coherency between parameters and hdf input file
-                fs->get_current_fname(),    // particles input filename
-                std::string("/tracers0/state/") + std::to_string(fs->iteration), // dataset name for initial input
-                std::string("/tracers0/rhs/")  + std::to_string(fs->iteration), // dataset name for initial input
+                this->fs->get_current_fname(),    // particles input filename
+                std::string("/tracers0/state/") + std::to_string(this->fs->iteration), // dataset name for initial input
+                std::string("/tracers0/rhs/")  + std::to_string(this->fs->iteration), // dataset name for initial input
                 tracers0_neighbours,        // parameter (interpolation no neighbours)
                 tracers0_smoothness,        // parameter
                 this->comm,
-                fs->iteration+1);
+                this->fs->iteration+1);
     this->particles_output_writer_mpi = new particles_output_hdf5<long long int,double,3,3>(
                 MPI_COMM_WORLD,
                 "tracers0",
@@ -32,7 +32,7 @@ int NSVEparticles<rnumber>::initialize(void)
 template <typename rnumber>
 int NSVEparticles<rnumber>::step(void)
 {
-    this->fs->compute_velocity(fs->cvorticity);
+    this->fs->compute_velocity(this->fs->cvorticity);
     this->fs->cvelocity->ift();
     this->ps->completeLoop(this->dt);
     this->NSVE<rnumber>::step();
@@ -43,7 +43,7 @@ template <typename rnumber>
 int NSVEparticles<rnumber>::write_checkpoint(void)
 {
     this->NSVE<rnumber>::write_checkpoint();
-    this->particles_output_writer_mpi->open_file(fs->get_current_fname());
+    this->particles_output_writer_mpi->open_file(this->fs->get_current_fname());
     this->particles_output_writer_mpi->save(
             this->ps->getParticlesPositions(),
             this->ps->getParticlesRhs(),
diff --git a/bfps/cpp/full_code/NSVEparticles.hpp b/bfps/cpp/full_code/NSVEparticles.hpp
index 298d9950b878cf1e6e257ed021fd2b14d37f705e..f912da643727be367836eda7b2667d037819bddd 100644
--- a/bfps/cpp/full_code/NSVEparticles.hpp
+++ b/bfps/cpp/full_code/NSVEparticles.hpp
@@ -37,7 +37,7 @@
 #include "particles/particles_output_hdf5.hpp"
 
 template <typename rnumber>
-class NSVEparticles: public NSVE
+class NSVEparticles: public NSVE<rnumber>
 {
     public:
 
@@ -56,7 +56,7 @@ class NSVEparticles: public NSVE
         NSVEparticles(
                 const MPI_Comm COMMUNICATOR,
                 const std::string &simulation_name):
-            NSVE(
+            NSVE<rnumber>(
                     COMMUNICATOR,
                     simulation_name){}
         ~NSVEparticles(){}
diff --git a/setup.py b/setup.py
index dd2f4b6d0d5d6e087df32f9370cca166b2817390..ba0c230ef6148e438350b961370f188dac491733 100644
--- a/setup.py
+++ b/setup.py
@@ -90,6 +90,7 @@ print('This is bfps version ' + VERSION)
 ### lists of files and MANIFEST.in
 src_file_list = ['full_code/direct_numerical_simulation',
                  'full_code/NSVE',
+                 'full_code/NSVEparticles',
                  'full_code/NSVEp',
                  'vorticity_equation',
                  'field',