diff --git a/systems_design/src/standardSystemsDesign.cpp b/systems_design/src/standardSystemsDesign.cpp
index 3a3a781282842a24a3291a775fccb206c336c0b0..125a1669de622ab0cadca52913b00e3b57a70d45 100644
--- a/systems_design/src/standardSystemsDesign.cpp
+++ b/systems_design/src/standardSystemsDesign.cpp
@@ -40,10 +40,10 @@ void standardSystemsDesign::initialize() {
     /* Initializing IOData */
     data_ = std::make_shared<systemsIOData>(*rtIO_, config, rtIO_->getMissionDataDir());
     /* Read geometry components from aircraft xml */
-    data_->readFuselages(rtIO_->acxml, rtIO_->getIODir()+"/");
-    data_->readNacelles(rtIO_->acxml, rtIO_->getIODir()+"/");
-    data_->readWing(rtIO_->acxml, rtIO_->getIODir()+"/");
-    data_->readEmpennage(rtIO_->acxml, rtIO_->getIODir()+"/");
+    data_->readFuselages(rtIO_->acxml, rtIO_->getGeometryDir());
+    data_->readNacelles(rtIO_->acxml, rtIO_->getGeometryDir());
+    data_->readWing(rtIO_->acxml, rtIO_->getAirfoilDataDir());
+    data_->readEmpennage(rtIO_->acxml, rtIO_->getAirfoilDataDir());
 
     /* Initializing values with data from the aircraft xml */
     data_->readPropulsion(rtIO_->acxml, rtIO_->getEngineDataDir());
diff --git a/systems_design/src/systemsIOData.cpp b/systems_design/src/systemsIOData.cpp
index 39614175f570326af802f5426fa8923486132240..7f9f754a206a6905a0b1de65d208a9bc21fdaf3f 100644
--- a/systems_design/src/systemsIOData.cpp
+++ b/systems_design/src/systemsIOData.cpp
@@ -63,18 +63,19 @@ std::string systemsIOData::getMissionFile(std::string mission_data_dir) {
     }
     if (!fileExists(mission_data_dir + "/" + missionFile)) {
         std::stringstream errorMsg;
-        errorMsg << "Mission file \"" << missionFile << "\" for the " << missionType << " does not exist. Please activate switch in createMissionXML. Abort program.";
+        errorMsg << "Mission file \"" << mission_data_dir << "/" << missionFile << "\" for the " << missionType
+                 << " does not exist. Please activate switch in createMissionXML. Abort program.";
         throwError(__FILE__, __func__, __LINE__, errorMsg.str());
     }
     return missionFile;
 }
 
-void systemsIOData::readWing(const node& acxml, const std::string& ioDir) {
+void systemsIOData::readWing(const node& acxml, const std::string& airfoilDir) {
     std::vector<node*> wingVector = acxml.getVector("aircraft_exchange_file/component_design/wing/specific/geometry/aerodynamic_surface");
     std::shared_ptr<node> ACXML = std::make_shared<node>(acxml); // wing factory requires this format
     node aircraftXML = acxml;
     std::shared_ptr<node> AcXML = std::make_shared<node>(aircraftXML);
-    geom2::WingFactory theWingfactory{ACXML, ioDir + "geometryData/airfoilData"}; // wing factory
+    geom2::WingFactory theWingfactory{ACXML, airfoilDir}; // wing factory
     for (size_t i = 0; i < wingVector.size(); i++) {
         Wing newWing;
         newWing.aerodynamicSurface = theWingfactory.create("wing/specific/geometry/aerodynamic_surface@0");
@@ -85,7 +86,7 @@ void systemsIOData::readWing(const node& acxml, const std::string& ioDir) {
         try {
             std::vector<node*> controlDeviceVector =
                 acxml.getVector("aircraft_exchange_file/component_design/wing/specific/geometry/aerodynamic_surface/parameters/control_devices/control_device");
-            geom2::ControlDeviceFactory theControlDevicefactory{ACXML, "./geometryData/airfoilData"}; // control device factory
+            geom2::ControlDeviceFactory theControlDevicefactory{ACXML, airfoilDir}; // control device factory
             for (size_t j = 0; j < controlDeviceVector.size(); j++) {
                 theWing.at(i).controlSurface.push_back(theControlDevicefactory.create("wing/specific/geometry/aerodynamic_surface@" + num2Str(i) +
                                                                             "/control_devices/control_device@" + num2Str(j)));
@@ -111,7 +112,7 @@ void systemsIOData::readWing(const node& acxml, const std::string& ioDir) {
     }
 }
 
-void systemsIOData::readEmpennage(const node& acxml, const std::string& ioDir) {
+void systemsIOData::readEmpennage(const node& acxml, const std::string& airfoilDir) {
     std::vector<node*> empennageVector = acxml.getVector("aircraft_exchange_file/component_design/empennage/specific/geometry/aerodynamic_surface");
     std::shared_ptr<node> ACXML = std::make_shared<node>(acxml); // factory requires this format
     for (size_t i = 0; i < empennageVector.size(); i++) {
@@ -119,7 +120,7 @@ void systemsIOData::readEmpennage(const node& acxml, const std::string& ioDir) {
         myRuntimeInfo->out << "Create: Empennage " << tmp_name << " ..." << std::endl;
         if (tmp_name == "vertical_stabiliser" || tmp_name == "horizontal_stabiliser" ||
             tmp_name == "vertical_stabilizer" || tmp_name == "horizontal_stabilizer") {
-            geom2::WingFactory Finfactory{ACXML, ioDir + "geometryData/airfoilData"};
+            geom2::WingFactory Finfactory{ACXML, airfoilDir};
             Empennage newEmpennage;
             newEmpennage.aerodynamicSurface = Finfactory.create("empennage/specific/geometry/aerodynamic_surface@" + num2Str(i));
             theEmpennage.push_back(newEmpennage);
@@ -131,7 +132,7 @@ void systemsIOData::readEmpennage(const node& acxml, const std::string& ioDir) {
             acxml.getVector("aircraft_exchange_file/component_design/empennage/specific/geometry/aerodynamic_surface@" + num2Str(i) +
                             "/parameters/control_devices");
         for (size_t j = 0; j < EmpennageControlDeviceVector.size(); j++) {
-            geom2::ControlDeviceFactory theControlDevicefactory{ACXML, "./geometryData/airfoilData"}; // control device factory
+            geom2::ControlDeviceFactory theControlDevicefactory{ACXML, airfoilDir}; // control device factory
             theEmpennage.at(i).controlSurface.push_back(theControlDevicefactory.create("empennage/specific/geometry/aerodynamic_surface@" + num2Str(i) +
                                                                            "/control_devices/control_device@" + num2Str(j)));
             theEmpennage.at(i).controlSurface.back().name = acxml.at("aircraft_exchange_file/component_design/empennage/specific/geometry/aerodynamic_surface@" + num2Str(i) +
@@ -144,11 +145,11 @@ void systemsIOData::readEmpennage(const node& acxml, const std::string& ioDir) {
     }
 }
 
-void systemsIOData::readFuselages(const node& acxml, const std::string& ioDir) {
+void systemsIOData::readFuselages(const node& acxml, const std::string& geometryDir) {
     std::shared_ptr<node> ACXML = std::make_shared<node>(acxml); //fuselage factory requires this format
     std::vector<node*> fuselageVector = acxml.getVector("aircraft_exchange_file/component_design/fuselage/specific/geometry/fuselage");
     std::string path_to_fuselage = "aircraft_exchange_file/component_design/fuselage";
-    geom2::FuselageFactory fuselageFactory{ACXML, ioDir + "geometryData"};
+    geom2::FuselageFactory fuselageFactory{ACXML, geometryDir};
     for (size_t i(0); i < fuselageVector.size(); ++i) {
         theFuselage.push_back(fuselageFactory.create("fuselage/specific/geometry/fuselage@" + num2Str(i)));
         myRuntimeInfo->out << "Create: " << theFuselage.at(i).name << " ..." << std::endl;
@@ -158,10 +159,10 @@ void systemsIOData::readFuselages(const node& acxml, const std::string& ioDir) {
     }
 }
 
-void systemsIOData::readNacelles(const node& acxml, const std::string& ioDir) {
+void systemsIOData::readNacelles(const node& acxml, const std::string& geometryDir) {
     std::shared_ptr<node> ACXML = std::make_shared<node>(acxml); // hull factory requires this format
     std::vector<node*> propulsorVector = acxml.getVector("aircraft_exchange_file/requirements_and_specifications/design_specification/propulsion/propulsor/");
-    geom2::HullFactory nacelleFactory(ACXML, ioDir + "geometryData");
+    geom2::HullFactory nacelleFactory(ACXML, geometryDir);
     for (size_t j(0); j < propulsorVector.size(); j++) {
         std::vector<node*> nacelleVector = acxml.getVector("aircraft_exchange_file/component_design/propulsion/specific/propulsion@" + num2Str(j)
                                                             + "/nacelle");
diff --git a/systems_design/src/systemsIOData.h b/systems_design/src/systemsIOData.h
index 799dbba2325ce51a0400ba1a461aa768f659e7d3..6f833006c95f5d32909b4139a3c93fc60b4f3fca 100644
--- a/systems_design/src/systemsIOData.h
+++ b/systems_design/src/systemsIOData.h
@@ -206,36 +206,36 @@ class systemsIOData {
      * \brief Reads all wing surface geometry and the wings control surfaces and spars from
      * the acxml.
      * \param acxml aircraft xml
-     * \param ioDir IO directory (needed for geometry files)
+     * \param airfoilDir airfoil directory
      * \return void
      */
-    void readWing(const node& acxml, const std::string& ioDir);
+    void readWing(const node& acxml, const std::string& airfoilDir);
 
     /**
      * \brief Reads all empennage surfaces and their control devices from the acxml.
      * \note current implementation checks for fin and horizontal tail since aircraft systems
      * do not yet have methods for v-tail or other unconventional tails.
      * \param acxml aircraft xml
-     * \param ioDir IO directory (needed for geometry files)
+     * \param airfoilDir airfoil directory
      * \return void
      */
-    void readEmpennage(const node& acxml, const std::string& ioDir);
+    void readEmpennage(const node& acxml, const std::string& airfoilDir);
 
     /**
      * \brief Reads all fuselages from the acxml.
      * \param acxml aircraft xml
-     * \param ioDir IO directory (needed for geometry files)
+     * \param geometryDir geometry directory (needed for geometry files)
      * \return void
      */
-    void readFuselages(const node& acxml, const std::string& ioDir);
+    void readFuselages(const node& acxml, const std::string& geometryDir);
 
     /**
      * \brief Reads all nacelles from acxml (for all propulsors)
      * \param acxml aircraft xml
-     * \param ioDir IO directory (needed for geometry files)
+     * \param geometryDir geometry directory (needed for geometry files)
      * \return void
      */
-    void readNacelles(const node& acxml, const std::string& ioDir);
+    void readNacelles(const node& acxml, const std::string& geometryDir);
 
     /**
      * \brief Reads strut length and landing gear name of each gear from the acxml.