diff --git a/src/users/broker.cpp b/src/users/broker.cpp
index e36b7f2f7cb07312710a3fb767f37315f3902797..4e4f91728c4c62d149b7ba07d3aea83cd48ead12 100644
--- a/src/users/broker.cpp
+++ b/src/users/broker.cpp
@@ -1,6 +1,7 @@
 #include "broker.hpp"
 #include "users/user.hpp"
 #include "json_workload.hpp"
+#include "response_behaviors.hpp"
 
 #include <boost/format.hpp>
 #include <fstream>
diff --git a/src/users/response_behaviors.cpp b/src/users/response_behaviors.cpp
index fc292beb5a8e5e5f374d7b8ee41700228a195cf0..2ee63e5afb35888f8eb5a61f9b6532983276c507 100644
--- a/src/users/response_behaviors.cpp
+++ b/src/users/response_behaviors.cpp
@@ -4,23 +4,13 @@
 
 #include "../pempek_assert.hpp"
 
-void log_behavior(LoggerUserStat *logger, shared_ptr<Job> &job,
-    std::string behavior_name, long delay_time, double random_value)
-{
-    if (logger)
-    {
-        logger->add_stat(
-            job, std::move(behavior_name), delay_time, random_value);
-    }
-}
-
-bool rigid_job(shared_ptr<Job> job, Profile *profile, User *user,
-    LoggerUserStat *logger, double random_number)
+bool rigid_job(shared_ptr<Job> job, Profile *profile, ReplayUser *user,
+    double random_number)
 {
     Parser::profile_from_duration(profile, job->profile, user->user_name);
 
     /* Log... */
-    log_behavior(logger, job, "rigid", 0, random_number);
+    user->log_behavior(job, "rigid", 0, random_number);
     user->dm_stat[2 * RIGID]++;
     user->dm_stat[2 * RIGID + 1]
         += job->nb_requested_resources * std::stol(job->profile);
@@ -29,11 +19,10 @@ bool rigid_job(shared_ptr<Job> job, Profile *profile, User *user,
     return true;
 }
 
-bool renounce_job(shared_ptr<Job> job, User *user, LoggerUserStat *logger,
-    double random_number)
+bool renounce_job(shared_ptr<Job> job, ReplayUser *user, double random_number)
 {
     /* Log... */
-    log_behavior(logger, job, "renonce", 0, random_number);
+    user->log_behavior(job, "renonce", 0, random_number);
     user->dm_stat[2 * RENONCED]++;
     user->dm_stat[2 * RENONCED + 1]
         += job->nb_requested_resources * std::stol(job->profile);
@@ -43,7 +32,7 @@ bool renounce_job(shared_ptr<Job> job, User *user, LoggerUserStat *logger,
 }
 
 bool reconfig_job(shared_ptr<Job> job, Profile *profile, double alpha,
-    User *user, LoggerUserStat *logger, double random_number)
+    ReplayUser *user, double random_number)
 {
     int orig_nb_core = job->nb_requested_resources;
 
@@ -54,7 +43,7 @@ bool reconfig_job(shared_ptr<Job> job, Profile *profile, double alpha,
     /* Log... */
     user->dm_stat[2 * RECONF]++;
     user->dm_stat[2 * RECONF + 1] += orig_nb_core * std::stol(job->profile);
-    log_behavior(logger, job, "reconfig", 0.0, random_number);
+    user->log_behavior(job, "reconfig", 0.0, random_number);
 
     /* Reconfig: divide by two rounded up the nb or cores requested */
     int n = (orig_nb_core + 1) / 2;
@@ -76,8 +65,8 @@ bool reconfig_job(shared_ptr<Job> job, Profile *profile, double alpha,
     return true;
 }
 
-bool degrad_space_job(shared_ptr<Job> &job, Profile *profile, User *user,
-    LoggerUserStat *logger, double random_number)
+bool degrad_space_job(shared_ptr<Job> &job, Profile *profile, ReplayUser *user,
+    double random_number)
 {
     int orig_nb_core = job->nb_requested_resources;
 
@@ -88,7 +77,7 @@ bool degrad_space_job(shared_ptr<Job> &job, Profile *profile, User *user,
     /* Log... */
     user->dm_stat[2 * DEGRADED]++;
     user->dm_stat[2 * DEGRADED + 1] += orig_nb_core * std::stol(job->profile);
-    log_behavior(logger, job, "degrad", 0, random_number);
+    user->log_behavior(job, "degrad", 0, random_number);
 
     /* Spatial degradiation: divide by two rounded up the nb or
      * cores requested, and keep the original duration */
@@ -99,13 +88,13 @@ bool degrad_space_job(shared_ptr<Job> &job, Profile *profile, User *user,
     return true;
 }
 
-bool degrad_time_job(shared_ptr<Job> &job, Profile *profile, User *user,
-    LoggerUserStat *logger, double random_number)
+bool degrad_time_job(shared_ptr<Job> &job, Profile *profile, ReplayUser *user,
+    double random_number)
 {
     long original_time = std::stol(job->profile);
 
     /* Log... */
-    log_behavior(logger, job, "degrad_time", 0, random_number);
+    user->log_behavior(job, "degrad_time", 0, random_number);
     user->dm_stat[2 * DEGRADED]++;
     user->dm_stat[2 * DEGRADED + 1]
         += (job->nb_requested_resources) * original_time;
@@ -119,13 +108,12 @@ bool degrad_time_job(shared_ptr<Job> &job, Profile *profile, User *user,
 }
 
 bool delay_job(double new_time, shared_ptr<Job> job,
-    UserSubmitQueue *original_trace, User *user, LoggerUserStat *logger,
-    double random_number)
+    UserSubmitQueue *original_trace, ReplayUser *user, double random_number)
 {
 
     /* Log... */
-    log_behavior(
-        logger, job, "delay", new_time - job->submission_time, random_number);
+    user->log_behavior(
+        job, "delay", new_time - job->submission_time, random_number);
     user->dm_stat[2 * DELAYED]++;
     user->dm_stat[2 * DELAYED + 1]
         += job->nb_requested_resources * std::stol(job->profile);
@@ -139,12 +127,11 @@ bool delay_job(double new_time, shared_ptr<Job> job,
 }
 
 bool C_you_later_job(double next_time, shared_ptr<Job> job,
-    UserSubmitQueue *original_trace, User *user, LoggerUserStat *logger,
-    double random_number)
+    UserSubmitQueue *original_trace, ReplayUser *user, double random_number)
 {
     /* Log... */
-    log_behavior(logger, job, "C_you_later", next_time - job->submission_time,
-        random_number);
+    user->log_behavior(
+        job, "C_you_later", next_time - job->submission_time, random_number);
     user->dm_stat[2 * DELAYED]++;
     user->dm_stat[2 * DELAYED + 1]
         += job->nb_requested_resources * std::stol(job->profile);
diff --git a/src/users/response_behaviors.hpp b/src/users/response_behaviors.hpp
index 8d62de3214a0d9912870b23ce9e9dd0174ff8f69..1dcd0d5ff514ef7bab1d596d8b45098225f20bad 100644
--- a/src/users/response_behaviors.hpp
+++ b/src/users/response_behaviors.hpp
@@ -1,7 +1,6 @@
 #include "json_workload.hpp"
-#include "log_user_stat.hpp"
 #include "queue.hpp"
-#include "user.hpp"
+#include "user_replay.hpp"
 
 using namespace std;
 
@@ -16,28 +15,22 @@ enum Behavior
     CONSIDER_RECONF
 };
 
-void log_behavior(LoggerUserStat *logger, shared_ptr<Job> &job,
-    std::string behavior_name, long delay_time, double random_value);
-
-bool rigid_job(shared_ptr<Job> job, Profile *profile, User *user,
-    LoggerUserStat *logger, double random_number);
-
-bool renounce_job(shared_ptr<Job> job, User *user, LoggerUserStat *logger,
+bool rigid_job(shared_ptr<Job> job, Profile *profile, ReplayUser *user,
     double random_number);
 
+bool renounce_job(shared_ptr<Job> job, ReplayUser *user, double random_number);
+
 bool reconfig_job(shared_ptr<Job> job, Profile *profile, double alpha,
-    User *user, LoggerUserStat *logger, double random_number);
+    ReplayUser *user, double random_number);
 
-bool degrad_space_job(shared_ptr<Job> &job, Profile *profile, User *user,
-    LoggerUserStat *logger, double random_number);
+bool degrad_space_job(shared_ptr<Job> &job, Profile *profile, ReplayUser *user,
+    double random_number);
 
-bool degrad_time_job(shared_ptr<Job> &job, Profile *profile, User *user,
-    LoggerUserStat *logger, double random_number);
+bool degrad_time_job(shared_ptr<Job> &job, Profile *profile, ReplayUser *user,
+    double random_number);
 
 bool delay_job(double new_time, shared_ptr<Job> job,
-    UserSubmitQueue *original_trace, User *user, LoggerUserStat *logger,
-    double random_number);
+    UserSubmitQueue *original_trace, ReplayUser *user, double random_number);
 
 bool C_you_later_job(double next_time, shared_ptr<Job> job,
-    UserSubmitQueue *original_trace, User *user, LoggerUserStat *logger,
-    double random_number);
\ No newline at end of file
+    UserSubmitQueue *original_trace, ReplayUser *user, double random_number);
\ No newline at end of file
diff --git a/src/users/user_replay.cpp b/src/users/user_replay.cpp
index 409dca46f9f774ae8ade90483d4f52ef9370ffa3..082264ad1934328c687b7136352c5b8e5c43878c 100644
--- a/src/users/user_replay.cpp
+++ b/src/users/user_replay.cpp
@@ -1,4 +1,5 @@
 #include "users/user_replay.hpp"
+#include "users/response_behaviors.hpp"
 #include "../pempek_assert.hpp"
 #include "json_workload.hpp"
 
@@ -81,6 +82,16 @@ void ReplayUser::jobs_to_submit(double date, std::list<shared_ptr<Job>> &jobs,
             = lround(original_trace->top()->submission_time);
 }
 
+void ReplayUser::log_behavior(shared_ptr<Job> &job, std::string behavior_name,
+    long delay_time, double random_value)
+{
+    if (logger)
+    {
+        logger->add_stat(
+            job, std::move(behavior_name), delay_time, random_value);
+    }
+}
+
 /* ReplayUserRigid */
 ReplayUserRigid::ReplayUserRigid(
     std::string name, const rapidjson::Value &param, DMWindow *window)
@@ -107,7 +118,7 @@ bool ReplayUserRigid::handle_job(
     /* If demand response mode: use behavior function handling the log etc. */
     if (dm_window && dm_window->date_in_dm_window(date))
     {
-        return rigid_job(job, profile, this, logger, -1);
+        return rigid_job(job, profile, this, -1);
     }
 
     /* Otherwise: just generate the corresponding profile by hand */
@@ -134,6 +145,7 @@ bool DMWindow::date_in_dm_window(double date)
     return date >= inf && date < sup;
 }
 
+/* DMUserReconfig */
 DMUserReconfig::DMUserReconfig(
     std::string name, const rapidjson::Value &param, DMWindow *window)
 {
@@ -167,6 +179,7 @@ void DMUserReconfig::jobs_to_submit(double date,
     ReplayUser::jobs_to_submit(date, jobs, profiles);
 }
 
+/* DMUserDegrad */
 DMUserDegrad::DMUserDegrad(
     std::string name, const rapidjson::Value &param, DMWindow *window)
 {
@@ -189,6 +202,7 @@ void DMUserDegrad::jobs_to_submit(double date, std::list<shared_ptr<Job>> &jobs,
     ReplayUser::jobs_to_submit(date, jobs, profiles);
 }
 
+/* DMUserRenonce */
 DMUserRenonce::DMUserRenonce(
     std::string name, const rapidjson::Value &param, DMWindow *window)
 {
@@ -211,6 +225,7 @@ void DMUserRenonce::jobs_to_submit(double date,
     ReplayUser::jobs_to_submit(date, jobs, profiles);
 }
 
+/* DMUserDelay */
 DMUserDelay::DMUserDelay(
     std::string name, const rapidjson::Value &param, DMWindow *window)
 {
@@ -244,13 +259,9 @@ bool DMUserReconfig::handle_job(
 
     this->dm_stat[2 * CONSIDER_RECONF]++;
     if (job->nb_requested_resources > 1)
-    {
-        return reconfig_job(job, profile, alpha, this, logger, -1.0);
-    }
-    else
-    {
-        return rigid_job(job, profile, this, logger, -1.0);
-    }
+        return reconfig_job(job, profile, alpha, this, -1.0);
+
+    return rigid_job(job, profile, this, -1.0);
 }
 
 bool DMUserDegrad::handle_job(
@@ -264,22 +275,16 @@ bool DMUserDegrad::handle_job(
 
     this->dm_stat[2 * CONSIDER_DEGRADED]++;
     if (job->nb_requested_resources > 1)
-    {
-        return degrad_space_job(job, profile, this, logger, -1);
-    }
-    else
-    {
-        return rigid_job(job, profile, this, logger, -1);
-    }
+        return degrad_space_job(job, profile, this, -1);
+
+    return rigid_job(job, profile, this, -1);
 }
 
 bool DMUserRenonce::handle_job(
     double date, shared_ptr<Job> job, Profile *profile)
 {
     if (dm_window->date_in_dm_window(date))
-    {
-        return renounce_job(job, this, logger, -1);
-    }
+        return renounce_job(job, this, -1);
 
     Parser::profile_from_duration(profile, job->profile, user_name);
     return true;
@@ -288,9 +293,7 @@ bool DMUserRenonce::handle_job(
 bool DMUserDelay::handle_job(double date, shared_ptr<Job> job, Profile *profile)
 {
     if (dm_window->date_in_dm_window(date))
-    {
-        return delay_job(dm_window->sup, job, original_trace, this, logger, -1);
-    }
+        return delay_job(dm_window->sup, job, original_trace, this, -1);
 
     Parser::profile_from_duration(profile, job->profile, user_name);
     return true;
diff --git a/src/users/user_replay.hpp b/src/users/user_replay.hpp
index 338422fba7f88346aca09dac1578486f0db7c5c0..10ffd4f77fab7cc25ee58aa6025edc2a9e1885b0 100644
--- a/src/users/user_replay.hpp
+++ b/src/users/user_replay.hpp
@@ -3,11 +3,10 @@
  */
 #pragma once
 #include "json_workload.hpp"
-#include "users/user.hpp"
-#include "users/response_behaviors.hpp"
-#include <random>
 #include "queue.hpp"
 #include "users/log_user_stat.hpp"
+#include "users/user.hpp"
+#include <random>
 /**
  * The demand response window during which the users are enclined to reduce
  * their consumption. (semi-closed interval [inf, sup[)
@@ -20,20 +19,21 @@ struct DMWindow
     bool date_in_dm_window(double date);
 };
 
-
 class ReplayUser : public User
 {
 public:
     virtual ~ReplayUser();
     long next_submission();
-    virtual void jobs_to_submit(
-        double date, std::list<shared_ptr<Job>> &jobs, std::list<const Profile *> &profiles);
+    virtual void jobs_to_submit(double date, std::list<shared_ptr<Job>> &jobs,
+        std::list<const Profile *> &profiles);
+    void log_behavior(shared_ptr<Job> &job, std::string behavior_name,
+        long delay_time, double random_value);
 
 protected:
     /**
      * To be called by the constructor of each ReplayUser children.
-     * Initialize user name and variables associated with handling the original
-     * trace.
+     * Initialize user name and variables associated with handling the
+     * original trace.
      */
     void init_ReplayUser(std::string name, const rapidjson::Value &param);
 
@@ -41,13 +41,16 @@ protected:
      * A job is read in the original trace. Handle it depending on the user
      * behavior and returns if it should still be executed now.
      */
-    virtual bool handle_job(double date, shared_ptr<Job>job, Profile *profile) = 0;
+    virtual bool handle_job(double date, shared_ptr<Job> job, Profile *profile)
+        = 0;
 
+public:
+    long dm_stat[14] = { 0 };
+    
 protected:
     std::string input_json;
     UserSubmitQueue *original_trace;
     DMWindow *dm_window = nullptr;
-    int dm_stat[14] = { 0 };
 
     LoggerUserStat *logger = nullptr;
     /* Keep track of profiles to not send them twice to Batsim */
@@ -65,14 +68,13 @@ public:
         std::string name, const rapidjson::Value &param, DMWindow *window);
     ~ReplayUserRigid();
     long next_submission();
-    void jobs_to_submit(
-        double date, std::list<shared_ptr<Job>> &jobs, std::list<const Profile *> &profiles);
+    void jobs_to_submit(double date, std::list<shared_ptr<Job>> &jobs,
+        std::list<const Profile *> &profiles);
 
 protected:
-    bool handle_job(double date, shared_ptr<Job>job, Profile *profile);
+    bool handle_job(double date, shared_ptr<Job> job, Profile *profile);
 };
 
-
 /******************************************************************************
  *********************** Users "demand response" ******************************
  *****************************************************************************/
@@ -87,13 +89,12 @@ public:
         std::string name, const rapidjson::Value &param, DMWindow *dm_window);
     ~DMUserReconfig();
     long next_submission();
-    void jobs_to_submit(
-        double date, std::list<shared_ptr<Job>> &jobs, std::list<const Profile *> &profiles);
+    void jobs_to_submit(double date, std::list<shared_ptr<Job>> &jobs,
+        std::list<const Profile *> &profiles);
 
 protected:
-    virtual bool handle_job(double date, shared_ptr<Job> job,
-        Profile *profile);
-    double alpha = 1.0; // for the speedup model 
+    virtual bool handle_job(double date, shared_ptr<Job> job, Profile *profile);
+    double alpha = 1.0; // for the speedup model
 };
 
 /**
@@ -107,8 +108,8 @@ public:
         std::string name, const rapidjson::Value &param, DMWindow *dm_window);
     ~DMUserDegrad();
     long next_submission();
-    void jobs_to_submit(
-        double date, std::list<shared_ptr<Job>> &jobs, std::list<const Profile *> &profiles);
+    void jobs_to_submit(double date, std::list<shared_ptr<Job>> &jobs,
+        std::list<const Profile *> &profiles);
 
 protected:
     bool handle_job(double date, shared_ptr<Job> job, Profile *profile);
@@ -118,15 +119,15 @@ protected:
  * @brief
  * @details
  */
-class DMUserRenonce :  virtual public ReplayUser
+class DMUserRenonce : virtual public ReplayUser
 {
 public:
     DMUserRenonce(
         std::string name, const rapidjson::Value &param, DMWindow *dm_window);
     ~DMUserRenonce();
     long next_submission();
-    void jobs_to_submit(
-        double date, std::list<shared_ptr<Job>> &jobs, std::list<const Profile *> &profiles);
+    void jobs_to_submit(double date, std::list<shared_ptr<Job>> &jobs,
+        std::list<const Profile *> &profiles);
 
 protected:
     bool handle_job(double date, shared_ptr<Job> job, Profile *profile);
@@ -143,8 +144,8 @@ public:
         std::string name, const rapidjson::Value &param, DMWindow *dm_window);
     ~DMUserDelay();
     long next_submission();
-    void jobs_to_submit(
-        double date, std::list<shared_ptr<Job>> &jobs, std::list<const Profile *> &profiles);
+    void jobs_to_submit(double date, std::list<shared_ptr<Job>> &jobs,
+        std::list<const Profile *> &profiles);
 
 protected:
     bool handle_job(double date, shared_ptr<Job> job, Profile *profile);
diff --git a/src/users/user_windows.cpp b/src/users/user_windows.cpp
index fdd8a2cb5bf6cbef118dff46e3e507a4f5faea1c..432e52fadbdf371b6b72580189667ab281820e95 100644
--- a/src/users/user_windows.cpp
+++ b/src/users/user_windows.cpp
@@ -1,6 +1,7 @@
 
 #include "user_windows.hpp"
 #include "../pempek_assert.hpp"
+#include "users/response_behaviors.hpp"
 
 DMWindow_list::DMWindow_list(const IntervalSet &interval)
 {
@@ -201,21 +202,21 @@ bool DMUserMultiBehavior::exec_red_behavior_mono(
 {
     if (behavior_number == R_RENONCE_MONO)
     {
-        return renounce_job(job, this, logger, random_number);
+        return renounce_job(job, this, random_number);
     }
     if (behavior_number == R_C_YOU_LATER_MONO)
     {
         return C_you_later_job(
-            date + 3600, job, original_trace, this, logger, random_number);
+            date + 3600, job, original_trace, this, random_number);
     }
     if (behavior_number == R_DEGRAD_MONO)
     {
-        log_behavior(logger, job, "consider_degrad", 0, random_number);
-        return degrad_time_job(job, profile, this, logger, random_number);
+        log_behavior(job, "consider_degrad", 0, random_number);
+        return degrad_time_job(job, profile, this, random_number);
     }
     if (behavior_number == R_RIGID_MONO)
     {
-        return rigid_job(job, profile, this, logger, random_number);
+        return rigid_job(job, profile, this, random_number);
     }
 
     PPK_ASSERT_ERROR(false, "Undefined behavior number...");
@@ -239,8 +240,7 @@ bool DMUserMultiBehavior::red_window_behavior_mono_core(
     }
     /* if none of the above we launch the job without changing anything
     Rigid strategy*/
-    return rigid_job(
-        job, profile, this, logger, behavior / red_prob_total_mono_core);
+    return rigid_job(job, profile, this, behavior / red_prob_total_mono_core);
 }
 
 bool DMUserMultiBehavior::exec_red_behavior_multi(
@@ -249,26 +249,26 @@ bool DMUserMultiBehavior::exec_red_behavior_multi(
 {
     if (behavior_number == R_RENONCE_MULTI)
     {
-        return renounce_job(job, this, logger, random_number);
+        return renounce_job(job, this, random_number);
     }
     if (behavior_number == R_C_YOU_LATER_MULTI)
     {
         return C_you_later_job(
-            date + 3600, job, original_trace, this, logger, random_number);
+            date + 3600, job, original_trace, this, random_number);
     }
     if (behavior_number == R_DEGRAD_MULTI)
     {
-        log_behavior(logger, job, "consider_degrad", 0, random_number);
-        return degrad_space_job(job, profile, this, logger, random_number);
+        log_behavior(job, "consider_degrad", 0, random_number);
+        return degrad_space_job(job, profile, this, random_number);
     }
     if (behavior_number == R_RECONFIG_MULTI)
     {
-        log_behavior(logger, job, "consider_reconfig", 0, random_number);
-        return reconfig_job(job, profile, 1.0, this, logger, random_number);
+        log_behavior(job, "consider_reconfig", 0, random_number);
+        return reconfig_job(job, profile, 1.0, this, random_number);
     }
     if (behavior_number == R_RIGID_MULTI)
     {
-        return rigid_job(job, profile, this, logger, random_number);
+        return rigid_job(job, profile, this, random_number);
     }
     else
     {
@@ -292,8 +292,7 @@ bool DMUserMultiBehavior::red_window_behavior_multi_core(
                 i, date, job, profile, behavior / red_prob_total_multi_core);
         }
     }
-    return rigid_job(
-        job, profile, this, logger, behavior / red_prob_total_multi_core);
+    return rigid_job(job, profile, this, behavior / red_prob_total_multi_core);
 }
 
 bool DMUserMultiBehavior::red_window_behavior(
@@ -321,14 +320,14 @@ bool DMUserMultiBehavior::yellow_window_behavior_mono_core(
     total_probability += yellow_prob_mono_core[Y_DEGRAD_MONO];
     if (behavior < total_probability)
     {
-        log_behavior(logger, job, "consider_degrad", 0,
-            behavior / yellow_prob_total_mono_core);
+        log_behavior(
+            job, "consider_degrad", 0, behavior / yellow_prob_total_mono_core);
         return degrad_time_job(
-            job, profile, this, logger, behavior / yellow_prob_total_mono_core);
+            job, profile, this, behavior / yellow_prob_total_mono_core);
     }
     // if none of the above we launch the job without i.e. rigid strategy
     return rigid_job(
-        job, profile, this, logger, behavior / yellow_prob_total_mono_core);
+        job, profile, this, behavior / yellow_prob_total_mono_core);
 }
 bool DMUserMultiBehavior::yellow_window_behavior_multi_core(
     shared_ptr<Job> job, Profile *profile)
@@ -338,22 +337,22 @@ bool DMUserMultiBehavior::yellow_window_behavior_multi_core(
     total_probability += yellow_prob_multi_core[Y_RECONFIG_MULTI];
     if (behavior < total_probability)
     {
-        log_behavior(logger, job, "consider_reconfig", 0,
-            behavior / yellow_prob_total_multi_core);
-        return reconfig_job(job, profile, 1.0, this, logger,
+        log_behavior(job, "consider_reconfig", 0,
             behavior / yellow_prob_total_multi_core);
+        return reconfig_job(
+            job, profile, 1.0, this, behavior / yellow_prob_total_multi_core);
     }
     total_probability += yellow_prob_multi_core[Y_DEGRAD_MULTI];
     if (behavior < total_probability)
     {
-        log_behavior(logger, job, "consider_degrad", 0,
-            behavior / yellow_prob_total_multi_core);
-        return degrad_space_job(job, profile, this, logger,
-            behavior / yellow_prob_total_multi_core);
+        log_behavior(
+            job, "consider_degrad", 0, behavior / yellow_prob_total_multi_core);
+        return degrad_space_job(
+            job, profile, this, behavior / yellow_prob_total_multi_core);
     }
     // if none of the above we launch the job without i.e. rigid strategy
     return rigid_job(
-        job, profile, this, logger, behavior / yellow_prob_total_multi_core);
+        job, profile, this, behavior / yellow_prob_total_multi_core);
 }
 bool DMUserMultiBehavior::yellow_window_behavior(
     shared_ptr<Job> &job, Profile *profile)
@@ -392,6 +391,6 @@ bool DMUserMultiBehavior::handle_job(
     }
     else
     {
-        return rigid_job(job, profile, this, logger, 1.0);
+        return rigid_job(job, profile, this, 1.0);
     }
 }
diff --git a/src/users/user_windows.hpp b/src/users/user_windows.hpp
index d3268994ff8d0f95b1ee172a95fc1712b874d72e..a7fd8f57c159ccadc9a954185239626e55512079 100644
--- a/src/users/user_windows.hpp
+++ b/src/users/user_windows.hpp
@@ -82,7 +82,6 @@ protected:
     std::mt19937 random_gen;
     std::uniform_real_distribution<double> distribution
             = std::uniform_real_distribution<double>(0.0, 1.0);
-    LoggerUserStat *logger = nullptr ;
 
     double parse_proba_param(const rapidjson::Value & param,
         const std::vector<string> & config_param,std::vector<double> & probability_array,