diff --git a/src/Bytecode.cc b/src/Bytecode.cc
index 9aea17ddb5d6393ce1dde950efeff1dacd9fb333..e540cc7c418f9101b27f3e16ad6fd55ff7ae2847 100644
--- a/src/Bytecode.cc
+++ b/src/Bytecode.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright © 2022-2023 Dynare Team
+ * Copyright © 2022-2024 Dynare Team
  *
  * This file is part of Dynare.
  *
@@ -82,8 +82,8 @@ operator<<(Writer& code_file, const FBEGINBLOCK& instr)
   write_member(instr.type);
   for (int i = 0; i < instr.size; i++)
     {
-      write_member(instr.variable[i]);
-      write_member(instr.equation[i]);
+      write_member(instr.variables[i]);
+      write_member(instr.equations[i]);
     }
   if (instr.type == BlockSimulationType::solveTwoBoundariesSimple
       || instr.type == BlockSimulationType::solveTwoBoundariesComplete
diff --git a/src/Bytecode.hh b/src/Bytecode.hh
index f2d30ffc4f56906b7859d830a6257217abafd6aa..83893cdd7ef31094ee74c5a56911e4883820dd83 100644
--- a/src/Bytecode.hh
+++ b/src/Bytecode.hh
@@ -121,11 +121,6 @@ enum class ExternalFunctionCallType
   numericalSecondDerivative
 };
 
-struct Block_contain_type
-{
-  int Equation, Variable, Own_Derivative;
-};
-
 class Writer;
 
 struct Instruction
@@ -613,12 +608,11 @@ class FBEGINBLOCK final : public Instruction
 private:
   int size {0};
   BlockSimulationType type;
-  vector<int> variable;
-  vector<int> equation;
+  vector<int> variables;
+  vector<int> equations;
   vector<int> exogenous;
   vector<int> det_exogenous;
   bool is_linear {false};
-  vector<Block_contain_type> Block_Contain_;
   int u_count_int {0};
   int nb_col_jacob {0};
   int det_exo_size, exo_size;
@@ -628,16 +622,16 @@ public:
      sense when there is no block-decomposition, since there is no provision for
      derivatives w.r.t. endogenous not belonging to the block) */
   FBEGINBLOCK(int size_arg, BlockSimulationType type_arg, int first_element, int block_size,
-              const vector<int>& variable_arg, const vector<int>& equation_arg, bool is_linear_arg,
-              int u_count_int_arg, int nb_col_jacob_arg, int det_exo_size_arg, int exo_size_arg,
-              vector<int> det_exogenous_arg, vector<int> exogenous_arg) :
+              const vector<int>& variables_arg, const vector<int>& equations_arg,
+              bool is_linear_arg, int u_count_int_arg, int nb_col_jacob_arg, int det_exo_size_arg,
+              int exo_size_arg, vector<int> det_exogenous_arg, vector<int> exogenous_arg) :
       Instruction {Tag::FBEGINBLOCK},
       size {size_arg},
       type {type_arg},
-      variable {variable_arg.begin() + first_element,
-                variable_arg.begin() + (first_element + block_size)},
-      equation {equation_arg.begin() + first_element,
-                equation_arg.begin() + (first_element + block_size)},
+      variables {variables_arg.begin() + first_element,
+                 variables_arg.begin() + (first_element + block_size)},
+      equations {equations_arg.begin() + first_element,
+                 equations_arg.begin() + (first_element + block_size)},
       exogenous {move(exogenous_arg)},
       det_exogenous {move(det_exogenous_arg)},
       is_linear {is_linear_arg},
@@ -649,15 +643,15 @@ public:
   }
   // Constructor when derivatives w.r.t. exogenous are absent
   FBEGINBLOCK(int size_arg, BlockSimulationType type_arg, int first_element, int block_size,
-              const vector<int>& variable_arg, const vector<int>& equation_arg, bool is_linear_arg,
-              int u_count_int_arg, int nb_col_jacob_arg) :
+              const vector<int>& variables_arg, const vector<int>& equations_arg,
+              bool is_linear_arg, int u_count_int_arg, int nb_col_jacob_arg) :
       Instruction {Tag::FBEGINBLOCK},
       size {size_arg},
       type {type_arg},
-      variable {variable_arg.begin() + first_element,
-                variable_arg.begin() + (first_element + block_size)},
-      equation {equation_arg.begin() + first_element,
-                equation_arg.begin() + (first_element + block_size)},
+      variables {variables_arg.begin() + first_element,
+                 variables_arg.begin() + (first_element + block_size)},
+      equations {equations_arg.begin() + first_element,
+                 equations_arg.begin() + (first_element + block_size)},
       is_linear {is_linear_arg},
       u_count_int {u_count_int_arg},
       nb_col_jacob {nb_col_jacob_arg},
@@ -678,12 +672,12 @@ public:
 
     read_member(size);
     read_member(type);
+    variables.resize(size);
+    equations.resize(size);
     for (int i {0}; i < size; i++)
       {
-        Block_contain_type bc;
-        read_member(bc.Variable);
-        read_member(bc.Equation);
-        Block_Contain_.push_back(bc);
+        read_member(variables[i]);
+        read_member(equations[i]);
       }
     if (type == BlockSimulationType::solveTwoBoundariesSimple
         || type == BlockSimulationType::solveTwoBoundariesComplete
@@ -731,10 +725,15 @@ public:
   {
     return u_count_int;
   }
-  vector<Block_contain_type>
-  get_Block_Contain()
+  vector<int>
+  get_variables()
+  {
+    return variables;
+  }
+  vector<int>
+  get_equations()
   {
-    return Block_Contain_;
+    return equations;
   }
   int
   get_nb_col_jacob()
@@ -752,11 +751,6 @@ public:
     return det_exo_size;
   }
   vector<int>
-  get_endogenous()
-  {
-    return variable;
-  }
-  vector<int>
   get_exogenous()
   {
     return exogenous;