diff --git a/src/ConfigFile.cc b/src/Configuration.cc
similarity index 94%
rename from src/ConfigFile.cc
rename to src/Configuration.cc
index 3c25a74f5f5871c183c837966af0928a26fc610a..b03b9820128c7a83aa357e827d13d3b7d611720d 100644
--- a/src/ConfigFile.cc
+++ b/src/Configuration.cc
@@ -22,7 +22,7 @@
 #include <utility>
 #include <vector>
 
-#include "ConfigFile.hh"
+#include "Configuration.hh"
 
 #pragma GCC diagnostic push
 #pragma GCC diagnostic ignored "-Wold-style-cast"
@@ -98,9 +98,9 @@ Cluster::Cluster(member_nodes_t member_nodes_arg) : member_nodes {move(member_no
     }
 }
 
-ConfigFile::ConfigFile(bool parallel_arg, bool parallel_test_arg,
-                       bool parallel_follower_open_mode_arg, bool parallel_use_psexec_arg,
-                       string cluster_name_arg) :
+Configuration::Configuration(bool parallel_arg, bool parallel_test_arg,
+                             bool parallel_follower_open_mode_arg, bool parallel_use_psexec_arg,
+                             string cluster_name_arg) :
     parallel {parallel_arg},
     parallel_test {parallel_test_arg},
     parallel_follower_open_mode {parallel_follower_open_mode_arg},
@@ -110,12 +110,12 @@ ConfigFile::ConfigFile(bool parallel_arg, bool parallel_test_arg,
 }
 
 void
-ConfigFile::getConfigFileInfo(const filesystem::path& config_file)
+Configuration::getConfigFileInfo(const filesystem::path& conffile_option)
 {
   using namespace boost;
   ifstream configFile;
 
-  if (config_file.empty())
+  if (conffile_option.empty())
     {
       filesystem::path defaultConfigFile;
       // Test OS and try to open default file
@@ -162,10 +162,10 @@ ConfigFile::getConfigFileInfo(const filesystem::path& config_file)
     }
   else
     {
-      configFile.open(config_file, fstream::in);
+      configFile.open(conffile_option, fstream::in);
       if (!configFile.is_open())
         {
-          cerr << "ERROR: Couldn't open file " << config_file.string() << endl;
+          cerr << "ERROR: Couldn't open file " << conffile_option.string() << endl;
           exit(EXIT_FAILURE);
         }
     }
@@ -469,7 +469,7 @@ ConfigFile::getConfigFileInfo(const filesystem::path& config_file)
 }
 
 void
-ConfigFile::addHooksConfFileElement(string global_init_file)
+Configuration::addHooksConfFileElement(string global_init_file)
 {
   if (global_init_file.empty())
     {
@@ -482,7 +482,7 @@ ConfigFile::addHooksConfFileElement(string global_init_file)
 }
 
 void
-ConfigFile::addPathsConfFileElement(vector<string> includepath)
+Configuration::addPathsConfFileElement(vector<string> includepath)
 {
   if (includepath.empty())
     {
@@ -494,15 +494,15 @@ ConfigFile::addPathsConfFileElement(vector<string> includepath)
 }
 
 void
-ConfigFile::addParallelConfFileElement(bool inNode, bool inCluster,
-                                       const member_nodes_t& member_nodes, const string& name,
-                                       const string& computerName, const string& port,
-                                       int minCpuNbr, int maxCpuNbr, const string& userName,
-                                       const string& password, const string& remoteDrive,
-                                       const string& remoteDirectory, const string& programPath,
-                                       const string& programConfig, const string& matlabOctavePath,
-                                       bool singleCompThread, int numberOfThreadsPerJob,
-                                       const string& operatingSystem)
+Configuration::addParallelConfFileElement(bool inNode, bool inCluster,
+                                          const member_nodes_t& member_nodes, const string& name,
+                                          const string& computerName, const string& port,
+                                          int minCpuNbr, int maxCpuNbr, const string& userName,
+                                          const string& password, const string& remoteDrive,
+                                          const string& remoteDirectory, const string& programPath,
+                                          const string& programConfig,
+                                          const string& matlabOctavePath, bool singleCompThread,
+                                          int numberOfThreadsPerJob, const string& operatingSystem)
 {
   //! ADD NODE
   if (inNode)
@@ -546,7 +546,7 @@ ConfigFile::addParallelConfFileElement(bool inNode, bool inCluster,
 }
 
 void
-ConfigFile::checkPass([[maybe_unused]] WarningConsolidation& warnings) const
+Configuration::checkPass([[maybe_unused]] WarningConsolidation& warnings) const
 {
   for (bool global_init_file_declared {false}; const auto& hook : hooks)
     for (const auto& mapit : hook.get_hooks())
@@ -684,7 +684,7 @@ ConfigFile::checkPass([[maybe_unused]] WarningConsolidation& warnings) const
 }
 
 void
-ConfigFile::transformPass()
+Configuration::transformPass()
 {
   if (!parallel && !parallel_test)
     return;
@@ -711,7 +711,7 @@ ConfigFile::transformPass()
 }
 
 vector<filesystem::path>
-ConfigFile::getIncludePaths() const
+Configuration::getIncludePaths() const
 {
   vector<filesystem::path> include_paths;
   for (auto path : paths)
@@ -722,7 +722,7 @@ ConfigFile::getIncludePaths() const
 }
 
 void
-ConfigFile::writeHooks(ostream& output) const
+Configuration::writeHooks(ostream& output) const
 {
   for (auto hook : hooks)
     for (const auto& mapit : hook.get_hooks())
@@ -730,7 +730,7 @@ ConfigFile::writeHooks(ostream& output) const
 }
 
 void
-ConfigFile::writeCluster(ostream& output) const
+Configuration::writeCluster(ostream& output) const
 {
   if (!parallel && !parallel_test)
     return;
@@ -804,7 +804,7 @@ ConfigFile::writeCluster(ostream& output) const
 }
 
 void
-ConfigFile::writeEndParallel(ostream& output) const
+Configuration::writeEndParallel(ostream& output) const
 {
   if ((!parallel && !parallel_test) || !parallel_follower_open_mode)
     return;
diff --git a/src/ConfigFile.hh b/src/Configuration.hh
similarity index 88%
rename from src/ConfigFile.hh
rename to src/Configuration.hh
index 29db1bb13f2297105bd96c3dc3ad1fce5a1e27bc..8e8a59e45689755ae4f9328ed25edecf503fd4a4 100644
--- a/src/ConfigFile.hh
+++ b/src/Configuration.hh
@@ -17,8 +17,8 @@
  * along with Dynare.  If not, see <https://www.gnu.org/licenses/>.
  */
 
-#ifndef CONFIG_FILE_HH
-#define CONFIG_FILE_HH
+#ifndef CONFIGURATION_HH
+#define CONFIGURATION_HH
 
 #include <filesystem>
 #include <map>
@@ -64,7 +64,7 @@ public:
 
 class FollowerNode
 {
-  friend class ConfigFile;
+  friend class Configuration;
 
 public:
   FollowerNode(string computerName_arg, string port_arg, int minCpuNbr_arg, int maxCpuNbr_arg,
@@ -86,7 +86,7 @@ protected:
 
 class Cluster
 {
-  friend class ConfigFile;
+  friend class Configuration;
 
 public:
   explicit Cluster(member_nodes_t member_nodes_arg);
@@ -95,12 +95,13 @@ protected:
   member_nodes_t member_nodes;
 };
 
-//! The abstract representation of a "config" file
-class ConfigFile
+/* The abstract representation of the configuration.
+   Merges information from the command-line and from the configuration file. */
+class Configuration
 {
 public:
-  ConfigFile(bool parallel_arg, bool parallel_test_arg, bool parallel_follower_open_mode_arg,
-             bool parallel_use_psexec_arg, string cluster_name);
+  Configuration(bool parallel_arg, bool parallel_test_arg, bool parallel_follower_open_mode_arg,
+                bool parallel_use_psexec_arg, string cluster_name);
 
 private:
   const bool parallel, parallel_test, parallel_follower_open_mode, parallel_use_psexec;
@@ -130,7 +131,7 @@ private:
 
 public:
   //! Parse config file
-  void getConfigFileInfo(const filesystem::path& parallel_config_file);
+  void getConfigFileInfo(const filesystem::path& conffile_option);
   //! Check Pass
   void checkPass(WarningConsolidation& warnings) const;
   //! Check Pass
diff --git a/src/DynareMain.cc b/src/DynareMain.cc
index ea63400a13a50b62558a178bbc8856a1a9a73862..8bf6879253b63ff5f38ad604164e40682ea986e2 100644
--- a/src/DynareMain.cc
+++ b/src/DynareMain.cc
@@ -31,7 +31,7 @@
 
 #include <unistd.h>
 
-#include "ConfigFile.hh"
+#include "Configuration.hh"
 #include "ExtendedPreprocessorTypes.hh"
 #include "ModFile.hh"
 #include "ParsingDriver.hh"
@@ -53,7 +53,7 @@ usage()
   cerr << "Dynare usage: dynare mod_file [debug] [noclearall] [onlyclearglobals] "
           "[savemacro[=macro_file]] [onlymacro] [linemacro] [notmpterms] [nolog] [warn_uninit]"
        << " [console] [nograph] [nointeractive] [parallel[=cluster_name]] "
-          "[conffile=parallel_config_path_and_filename] [parallel_follower_open_mode] "
+          "[conffile=path_to_config_file] [parallel_follower_open_mode] "
           "[parallel_test] [parallel_use_psexec=true|false]"
        << " [-D<variable>[=<value>]] [-I/path] [nostrict] [stochastic] [fast] [minimal_workspace] "
           "[compute_xrefs] [output=second|third] [language=matlab|julia]"
@@ -142,7 +142,7 @@ main(int argc, char** argv)
   bool console = false;
   bool nograph = false;
   bool nointeractive = false;
-  filesystem::path parallel_config_file;
+  filesystem::path conffile;
   bool parallel = false;
   string cluster_name;
   bool parallel_follower_open_mode
@@ -234,7 +234,7 @@ main(int argc, char** argv)
               cerr << "Incorrect syntax for conffile option" << endl;
               usage();
             }
-          parallel_config_file = s.substr(9);
+          conffile = s.substr(9);
         }
       else if (s == "parallel_follower_open_mode"
                || s == "parallel_slave_open_mode") // Kept for backward compatibility, see #86
@@ -461,15 +461,15 @@ main(int argc, char** argv)
   WarningConsolidation warnings(no_warn);
 
   // Process config file
-  ConfigFile config_file(parallel, parallel_test, parallel_follower_open_mode, parallel_use_psexec,
-                         cluster_name);
-  config_file.getConfigFileInfo(parallel_config_file);
-  config_file.checkPass(warnings);
-  config_file.transformPass();
+  Configuration config {parallel, parallel_test, parallel_follower_open_mode, parallel_use_psexec,
+                        cluster_name};
+  config.getConfigFileInfo(conffile);
+  config.checkPass(warnings);
+  config.transformPass();
 
   // If Include option was passed to the [paths] block of the config file, add
   // it to paths before macroprocessing
-  for (const auto& it : config_file.getIncludePaths())
+  for (const auto& it : config.getIncludePaths())
     paths.emplace_back(it);
 
   /*
@@ -540,7 +540,7 @@ main(int argc, char** argv)
     mod_file->writeJuliaOutput(basename);
   else
     mod_file->writeMOutput(basename, clear_all, clear_global, no_warn, console, nograph,
-                           nointeractive, config_file, check_model_changes, minimal_workspace,
+                           nointeractive, config, check_model_changes, minimal_workspace,
                            compute_xrefs, mexext, matlabroot, onlymodel, gui, notime);
 
   /* Ensures that workers are not destroyed before they finish compiling.
diff --git a/src/ModFile.cc b/src/ModFile.cc
index a63bc6732a71cdb3d6776a11ff5b737a3ecbd614..eaa9a435e3d372ffa8e570647b8acd045d6f71b0 100644
--- a/src/ModFile.cc
+++ b/src/ModFile.cc
@@ -27,7 +27,6 @@
 #include <filesystem>
 
 #include "ComputingTasks.hh"
-#include "ConfigFile.hh"
 #include "ModFile.hh"
 #include "Shocks.hh"
 
@@ -843,7 +842,7 @@ ModFile::remove_directory_with_matlab_lock(const filesystem::path& dir)
 
 void
 ModFile::writeMOutput(const string& basename, bool clear_all, bool clear_global, bool no_warn,
-                      bool console, bool nograph, bool nointeractive, const ConfigFile& config_file,
+                      bool console, bool nograph, bool nointeractive, const Configuration& config,
                       bool check_model_changes, bool minimal_workspace, bool compute_xrefs,
                       const string& mexext, const filesystem::path& matlabroot, bool onlymodel,
                       bool gui, bool notime) const
@@ -916,7 +915,7 @@ ModFile::writeMOutput(const string& basename, bool clear_all, bool clear_global,
       << "% Some global variables initialization" << endl
       << "%" << endl;
   if (!onlymodel)
-    config_file.writeHooks(mOutputFile);
+    config.writeHooks(mOutputFile);
   mOutputFile << "global_initialization;" << endl;
 
   if (minimal_workspace)
@@ -1002,7 +1001,7 @@ ModFile::writeMOutput(const string& basename, bool clear_all, bool clear_global,
     }
 
   if (!onlymodel)
-    config_file.writeCluster(mOutputFile);
+    config.writeCluster(mOutputFile);
 
   if (bytecode)
     mOutputFile << "if exist('bytecode') ~= 3" << endl
@@ -1131,7 +1130,7 @@ ModFile::writeMOutput(const string& basename, bool clear_all, bool clear_global,
                   << "_results.mat'], 'options_mom_', '-append');" << endl
                   << "end" << endl;
 
-      config_file.writeEndParallel(mOutputFile);
+      config.writeEndParallel(mOutputFile);
 
       if (!no_warn)
         {
diff --git a/src/ModFile.hh b/src/ModFile.hh
index a1e15cec2573a52e9b307ef56afcc5fca84b351b..440fc01fc0d5c9fbd51cc1a664c995efe75819c0 100644
--- a/src/ModFile.hh
+++ b/src/ModFile.hh
@@ -26,7 +26,7 @@
 #include <ostream>
 #include <sstream>
 
-#include "ConfigFile.hh"
+#include "Configuration.hh"
 #include "DynamicModel.hh"
 #include "ExtendedPreprocessorTypes.hh"
 #include "ExternalFunctionsTable.hh"
@@ -176,7 +176,7 @@ public:
     \param compute_xrefs if true, equation cross references will be computed
   */
   void writeMOutput(const string& basename, bool clear_all, bool clear_global, bool no_warn,
-                    bool console, bool nograph, bool nointeractive, const ConfigFile& config_file,
+                    bool console, bool nograph, bool nointeractive, const Configuration& config,
                     bool check_model_changes, bool minimal_workspace, bool compute_xrefs,
                     const string& mexext, const filesystem::path& matlabroot, bool onlymodel,
                     bool gui, bool notime) const;
diff --git a/src/meson.build b/src/meson.build
index f382977602b1b219776402330ca812b2300059d1..4dd87161f9049d43bf97c849b5f51b8c696672cc 100644
--- a/src/meson.build
+++ b/src/meson.build
@@ -42,7 +42,7 @@ preprocessor_src = [ 'ComputingTasks.cc',
 	             'ParsingDriver.cc',
 	             'DataTree.cc',
 	             'ModFile.cc',
-	             'ConfigFile.cc',
+	             'Configuration.cc',
 	             'Statement.cc',
 	             'ExprNode.cc',
 	             'VariableDependencyGraph.cc',