diff --git a/wing_design/CMakeLists.txt b/wing_design/CMakeLists.txt
index ec25b1e7c5e33b5243a10ab13366b60c4e102d34..cba6e661aaf515743c3063b56ea2e761371111e4 100644
--- a/wing_design/CMakeLists.txt
+++ b/wing_design/CMakeLists.txt
@@ -13,11 +13,11 @@ set(MODULE_NAME wing_design)
 
 # Conventional tail files
 set(MODULE_SOURCES_TAW
-    src/taw/cantilever/cantileverWingDesignTaw.cpp
     src/taw/tawWingDesignData.cpp
     src/taw/tawWingDesignConfig.cpp
-    src/taw/cantilever/cantileverWingDesignReport.cpp
-    src/taw/cantilever/cantileverWingDesignPlot.cpp
+    src/taw/cantilever_backward/cantileverWingDesignTaw.cpp
+    src/taw/cantilever_backward/cantileverWingDesignReport.cpp
+    src/taw/cantilever_backward/cantileverWingDesignPlot.cpp
 )
 
 set(MODULE_SOURCES_BLENDED_WING_BODY
@@ -53,7 +53,8 @@ find_package(Eigen3 3.3 REQUIRED NO_MODULE)
 
 # Link the runtime libraries
 target_link_libraries(${MODULE_NAME}
-    PUBLIC    
+    PUBLIC
+    PUBLIC
         Eigen3::Eigen
     PRIVATE
         UnicadoLibs::runtimeInfo
@@ -72,7 +73,7 @@ target_include_directories(${MODULE_NAME}
     PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}/
     PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}/src/ # <- This is due to the includes in empennage
     PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}/src/bwb/low_fidelity/
-    PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}/src/taw/cantilever/
+    PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}/src/taw/cantilever_backward/
 )
 
 # Set the location where the executable will be placed to the current source directory
@@ -87,8 +88,8 @@ endif()
 
 # Add the installation rules
 install (TARGETS ${MODULE_NAME} DESTINATION ${MODULE_NAME})
-install (FILES 
-            ${MODULE_NAME}_conf.xml 
+install (FILES
+            ${MODULE_NAME}_conf.xml
             gmp-10.dll
             mpfr-6.dll
          DESTINATION ${MODULE_NAME})
@@ -97,4 +98,5 @@ install (FILES
 if(BUILD_SHARED_LIBS)
     # Install the runtime dependencies
     install(RUNTIME_DEPENDENCY_SET ${MODULE_NAME}_dependencies)
-endif()
\ No newline at end of file
+endif()
+
diff --git a/wing_design/src/lib/design_methods/dihedralMethods.cpp b/wing_design/src/lib/design_methods/dihedralMethods.cpp
index cc2fcf03417096f31d7c3682795c6384d42eb011..590b7b627d6759233573ca0aaba39ae8a12afcb8 100644
--- a/wing_design/src/lib/design_methods/dihedralMethods.cpp
+++ b/wing_design/src/lib/design_methods/dihedralMethods.cpp
@@ -26,6 +26,7 @@
 #include <unitConversion/constants.h>
 
 #include <map>
+#include <cmath>
 #include <iostream>
 #include <numbers>
 #include <tuple>
@@ -35,17 +36,15 @@
 constexpr double to_degree = 180.0 / std::numbers::pi;
 constexpr double to_radian = std::numbers::pi / 180.0;
 
-std::tuple<double, double> user_defined::dihedral(const double user_dihedral) { return {user_dihedral, user_dihedral}; }
+double user_defined::dihedral(const double user_dihedral) { return user_dihedral; }
 
 double by_wing_position_and_quarter_chord_sweep::dihedral(const std::string& wing_position,
-                                                          const double quarter_chord_sweep, const double mach_design) {
-  const auto [minimum_dihedral, maximum_dihedral] =
-      raymer::dihedral_limitation(wing_position, quarter_chord_sweep, mach_design);
-  return 0.5 * (minimum_dihedral + maximum_dihedral);
+                                                          const double quarter_chord_sweep, const double mach_design, const double raymer_range_value) {
+  return raymer::dihedral_limitation(wing_position, quarter_chord_sweep, mach_design, raymer_range_value);
 }
 
-std::tuple<double, double> raymer::dihedral_limitation(const std::string& wing_position,
-                                                       const double quarter_chord_sweep, const double mach_design) {
+double raymer::dihedral_limitation(const std::string& wing_position,
+                                                       const double quarter_chord_sweep, const double mach_design, const double raymer_range_value) {
   std::map<std::string, std::tuple<double, double>> unswept = {{"low", {5. * geom2::detail::to_radians, 7. * geom2::detail::to_radians}},
                                                                {"mid", {2. * geom2::detail::to_radians, 4. * geom2::detail::to_radians}},
                                                                {"high", {0. * geom2::detail::to_radians, 2. * geom2::detail::to_radians}}};
@@ -58,46 +57,34 @@ std::tuple<double, double> raymer::dihedral_limitation(const std::string& wing_p
                                                                         {"mid", {-5. * geom2::detail::to_radians, 0. * geom2::detail::to_radians}},
                                                                         {"high", {-5. * geom2::detail::to_radians, 0. * geom2::detail::to_radians}}};
 
+  double dihedral;
   if (mach_design < 1.) {
     if (fabs(quarter_chord_sweep) < ACCURACY_MEDIUM) {
-      return unswept[wing_position];
+      const auto [lo, up] = unswept[wing_position];
+      dihedral = std::lerp(lo, up, raymer_range_value);
     } else {
-      return swept_subsonic[wing_position];
+      const auto [lo, up] =  swept_subsonic[wing_position];
+      dihedral = std::lerp(lo, up, raymer_range_value);
     }
   } else {
-    return swept_supersonic[wing_position];
-  }
-}
-
-std::tuple<double, double> howe::dihedral_limitation(const std::string& wing_position,
-                                                     const double quarter_chord_sweep) {
-  std::map<std::string, std::tuple<double, double>> unswept = {{"low", {3. * geom2::detail::to_radians, 5. * geom2::detail::to_radians}},
-                                                               {"mid", {0. * geom2::detail::to_radians, 0. * geom2::detail::to_radians}},
-                                                               {"high", {0. * geom2::detail::to_radians, 0. * geom2::detail::to_radians}}};
-  std::map<std::string, std::tuple<double, double>> swept = {
-      {"low", {0. * to_radian, std::numeric_limits<double>::max()}},
-      {"mid", {std::numeric_limits<double>::lowest(), std::numeric_limits<double>::max()}},
-      {"high", {std::numeric_limits<double>::lowest(), 0. * geom2::detail::to_radians}}};
-  if (fabs(quarter_chord_sweep) < ACCURACY_MEDIUM) {
-    return unswept[wing_position];
-  } else {
-    return swept[wing_position];
+    const auto [up, lo] =  swept_supersonic[wing_position];
+    dihedral = std::lerp(lo, up, raymer_range_value);
   }
+  return dihedral;
 }
 
 double get_design_dihedral(modes dihedral_mode, const std::string& wing_mounting, const double user_dihedral,
-                                 const double quarter_chord_sweep, const double mach_design) {
-  std::map<modes, std::tuple<std::string, std::function<std::tuple<double, double>(void)>>> dihedral_selection = {
+                                 const double quarter_chord_sweep, const double mach_design, const double raymer_range_value) {
+  std::map<modes, std::tuple<std::string, std::function<double(void)>>> dihedral_selection = {
       {"mode_0", {"user_defined", [=]() { return user_defined::dihedral(user_dihedral); }}},
-      {"mode_1",
-       {"raymer", [=]() { return ::raymer::dihedral_limitation(wing_mounting, quarter_chord_sweep, mach_design); }}},
-      {"mode_2", {"howe", [=]() { return ::howe::dihedral_limitation(wing_mounting, quarter_chord_sweep); }}}};
+      {"mode_1", {"raymer", [=]() { return ::raymer::dihedral_limitation(wing_mounting, quarter_chord_sweep, mach_design, raymer_range_value); }}}};
+
 
   const auto [method, limits_method] = dihedral_selection[dihedral_mode];
-  std::tuple<double, double> limits = limits_method();
-  const auto [minimum, maximum] = limits;
-  const double value = 0.5 * (minimum + maximum);
+  const double value = limits_method();
   std::cout << "Dihedral [method]: " << method << "\n";
   std::cout << "Dihedral  [value]: " << value * geom2::detail::to_degrees << " [deg]\n";
   return value;
-}
\ No newline at end of file
+
+
+}
diff --git a/wing_design/src/lib/design_methods/dihedralMethods.h b/wing_design/src/lib/design_methods/dihedralMethods.h
index 3b95d75724607b17122669c55d7ecfaa0118bea3..abcee2325469a9b5a737c08c7216d675a64610db 100644
--- a/wing_design/src/lib/design_methods/dihedralMethods.h
+++ b/wing_design/src/lib/design_methods/dihedralMethods.h
@@ -29,22 +29,18 @@
 using modes = std::string;
 
 namespace user_defined {
-std::tuple<double, double> dihedral(const double user_dihedral);
+double dihedral(const double user_dihedral);
 }
 
 namespace by_wing_position_and_quarter_chord_sweep {
-double dihedral(const std::string& wing_position, const double quarter_chord_sweep, const double mach_design);
+double dihedral(const std::string& wing_position, const double quarter_chord_sweep, const double mach_design, const double raymer_range_value);
 }  // namespace by_wing_position_and_quarter_chord_sweep
 namespace raymer {
-std::tuple<double, double> dihedral_limitation(const std::string& wing_position, const double quarter_chord_sweep,
-                                               const double mach);
-}
-
-namespace howe {
-std::tuple<double, double> dihedral_limitation(const std::string& wing_position, const double quarter_chord_sweep);
+double dihedral_limitation(const std::string& wing_position, const double quarter_chord_sweep,
+                                               const double mach, const double raymer_range_value);
 }
 
 double get_design_dihedral(modes dihedral_mode, const std::string& wing_mounting, const double user_dihedral,
-                           const double quarter_chord_sweep, const double mach_design);
+                           const double quarter_chord_sweep, const double mach_design, const double raymer_range_value);
 
 #endif  // DIHEDRAL_METHODS_H_
diff --git a/wing_design/src/taw/cantilever/cantileverWingDesignPlot.cpp b/wing_design/src/taw/cantilever_backward/cantileverWingDesignPlot.cpp
similarity index 99%
rename from wing_design/src/taw/cantilever/cantileverWingDesignPlot.cpp
rename to wing_design/src/taw/cantilever_backward/cantileverWingDesignPlot.cpp
index 0abe7b9a8b7a549eabb97ed84bc2908fb51d7e7e..f26d1bdf5ec7999b2bf3dd34a1136135e9928552 100644
--- a/wing_design/src/taw/cantilever/cantileverWingDesignPlot.cpp
+++ b/wing_design/src/taw/cantilever_backward/cantileverWingDesignPlot.cpp
@@ -117,7 +117,7 @@ std::tuple<std::vector<double>,std::vector<double>,std::string> gen_polygon(cons
   return {x,y,object.name};
 }
 namespace taw {
-namespace cantilever {
+namespace cantilever_backward {
 
 
 
diff --git a/wing_design/src/taw/cantilever/cantileverWingDesignReport.cpp b/wing_design/src/taw/cantilever_backward/cantileverWingDesignReport.cpp
similarity index 99%
rename from wing_design/src/taw/cantilever/cantileverWingDesignReport.cpp
rename to wing_design/src/taw/cantilever_backward/cantileverWingDesignReport.cpp
index ba88c99788775da5403838b2169a46e640fe04d3..e8a9a6aee1ea484a143f0ea8bfa8142dfb3b4334 100644
--- a/wing_design/src/taw/cantilever/cantileverWingDesignReport.cpp
+++ b/wing_design/src/taw/cantilever_backward/cantileverWingDesignReport.cpp
@@ -27,7 +27,7 @@
 #include "cantileverWingDesignTaw.h"
 
 namespace taw {
-namespace cantilever {
+namespace cantilever_backward {
 void Wing::set_html_body() {
   /* Add box data */
   reporter.htmlReportStream() << "<div class=\"box data\">\n";
diff --git a/wing_design/src/taw/cantilever/cantileverWingDesignTaw.cpp b/wing_design/src/taw/cantilever_backward/cantileverWingDesignTaw.cpp
similarity index 97%
rename from wing_design/src/taw/cantilever/cantileverWingDesignTaw.cpp
rename to wing_design/src/taw/cantilever_backward/cantileverWingDesignTaw.cpp
index 2ac8dd4764ea1ff5344fe3c642a5d980c0248b55..7879b76dabb32126c93963660f92333e7c79f259 100644
--- a/wing_design/src/taw/cantilever/cantileverWingDesignTaw.cpp
+++ b/wing_design/src/taw/cantilever_backward/cantileverWingDesignTaw.cpp
@@ -50,11 +50,11 @@ geom2::AirfoilSection get_rescaled_airfoil_geometry(const std::string& airfoilda
                                                     std::tuple<double, double, std::string> wing_profile_and_thickness);
 
 namespace taw {
-namespace cantilever {
+namespace cantilever_backward {
 Wing::Wing(const std::shared_ptr<RuntimeIO>& rtIO)
     : rtIO(rtIO),
-      config(std::make_shared<taw::cantilever::WingDesignConfig>()),
-      data(std::make_shared<taw::cantilever::WingDesignData>()),
+      config(std::make_shared<taw::cantilever_backward::WingDesignConfig>()),
+      data(std::make_shared<taw::cantilever_backward::WingDesignData>()),
       reporter(rtIO) {
   /* Setup design modes */
   design_mode_runner["mode_0"] = [this]() { standard_design(); };
@@ -66,6 +66,7 @@ Wing::Wing(const std::shared_ptr<RuntimeIO>& rtIO)
 }
 
 void Wing::initialize() {
+  myRuntimeInfo->out << "Wing design method ... cantilever (backward)" << std::endl;
   myRuntimeInfo->out << "Initializing wing design ... [START]" << std::endl;
   /* Create Airfoil directory in project path */
   rtIO->createAirfoilDataDir();
@@ -169,19 +170,9 @@ void Wing::standard_design() {
 
   /* if current aspect ratio exceeds maximum possible aspect ratio -> set aspect ratio to maximum possible aspect ratio
    * and set span to according wing span */
-  if (aspect_ratio > maximum_possible_aspect_ratio) {
-    myRuntimeInfo->warn << "Calculated aspect ratio > maximum_possible_aspect_ratio" << std::endl;
-    myRuntimeInfo->warn << "Switch to maximum possible aspect_ratio" << std::endl;
-    aspect_ratio = maximum_possible_aspect_ratio;
-    span = upper_wing_span;
-  }
-  // Check if current aspect ratio is below lower span limit -> set aspect ratio to minimum possible aspect ratio and
-  // set span to according wing span */
-  if (aspect_ratio < minimum_possible_aspect_ratio) {
-    myRuntimeInfo->warn << "Current aspect ratio breach lower span limit ..." << std::endl;
-    myRuntimeInfo->warn << "Switch to minimum possible aspect_ratio" << std::endl;
-    aspect_ratio = minimum_possible_aspect_ratio;
-    span = lower_wing_span;
+  if (aspect_ratio > maximum_possible_aspect_ratio || aspect_ratio < minimum_possible_aspect_ratio) {
+    myRuntimeInfo->warn << "Calculated aspect ratio out of bounds with regard to icao aerodrome reference" << std::endl;
+    myRuntimeInfo->warn << std::format("Aspect ratio range: {:.2f} <= {:.2f} <= {:.2f}", minimum_possible_aspect_ratio, aspect_ratio, maximum_possible_aspect_ratio) << std::endl;
   }
 
   /* Freeze aspect ratio and span */
@@ -195,7 +186,7 @@ void Wing::standard_design() {
   // Comptue dihedral based on selected mode
   const double installed_dihedral = get_design_dihedral(
       config->dihedral_calculation_mode.value(), data->specification_wing_mounting.value(),
-      config->user_dihedral.value(), installed_quarter_chord_sweep, data->specification_design_mach.value());
+      config->user_dihedral.value(), installed_quarter_chord_sweep, data->specification_design_mach.value(), config->raymer_range_value.value());
 
   // Generate wing
   if (is_wing_kinked) {
@@ -439,10 +430,10 @@ geom2::MultisectionSurface<geom2::AirfoilSection> Wing::calculate_kinked_wing_ge
     if ((half_span * (eta_kink - eta_fuselage) * tan_inner_wing_leading_edge_sweep) >= (1 - taper_ratio_inner)) {
       std::cout << "[OK]" << std::endl;
     } else {
-      throwError(__FILE__,__func__,__LINE__,"Error - trailing edge condition not fulfilled (TE Sweep < 0)");
+      myRuntimeInfo->info << "Trailing edge sweep < 0" << std::endl;
     }
   } else {
-    throwError(__FILE__,__func__,__LINE__,"Error - leading edge condition not fulfilled (LE Sweep inner < LE Sweep outer).");
+    myRuntimeInfo->info << "Leading edge sweep inner < Leading edge sweep outer" << std::endl;
   }
 
   /* Create Sections */
diff --git a/wing_design/src/taw/cantilever/cantileverWingDesignTaw.h b/wing_design/src/taw/cantilever_backward/cantileverWingDesignTaw.h
similarity index 96%
rename from wing_design/src/taw/cantilever/cantileverWingDesignTaw.h
rename to wing_design/src/taw/cantilever_backward/cantileverWingDesignTaw.h
index d6fbf2510b45d60fa3cde2addc2f86c7ca73c799..d7e6ba8bf6a35d32f12197edb4a71c11ae8e68c4 100644
--- a/wing_design/src/taw/cantilever/cantileverWingDesignTaw.h
+++ b/wing_design/src/taw/cantilever_backward/cantileverWingDesignTaw.h
@@ -33,7 +33,7 @@
 
 using modes = std::string;
 namespace taw {
-namespace cantilever {
+namespace cantilever_backward {
 class Wing : public Strategy {
  public:
   Wing(const std::shared_ptr<RuntimeIO>& rtIO);
@@ -211,8 +211,8 @@ class Wing : public Strategy {
 
   std::shared_ptr<Airfoils> airfoils_library;
   const std::shared_ptr<RuntimeIO>& rtIO;
-  const std::shared_ptr<taw::cantilever::WingDesignData> data;
-  const std::shared_ptr<taw::cantilever::WingDesignConfig> config;
+  const std::shared_ptr<taw::cantilever_backward::WingDesignData> data;
+  const std::shared_ptr<taw::cantilever_backward::WingDesignConfig> config;
   Report reporter;
 };
 
diff --git a/wing_design/src/taw/tawWingDesignConfig.cpp b/wing_design/src/taw/tawWingDesignConfig.cpp
index f3946b3357a09146c1714287c53705515167cf05..23b56c4aeb104792e2619b063c9b4f7cfdcdfe79 100644
--- a/wing_design/src/taw/tawWingDesignConfig.cpp
+++ b/wing_design/src/taw/tawWingDesignConfig.cpp
@@ -22,89 +22,89 @@
 
 #include "tawWingDesignConfig.h"
 
-taw::cantilever::WingDesignConfig::WingDesignConfig()
+taw::cantilever_backward::WingDesignConfig::WingDesignConfig()
     : wing_design_mode(EndnodeReadOnly<std::string>("program_settings/modes/design_mode")),
       wing_mass_mode(
-          EndnodeReadOnly<std::string>("program_settings/tube_and_wing/cantilever/calculation_methods/mass/method")),
+          EndnodeReadOnly<std::string>("program_settings/tube_and_wing/cantilever_backward/calculation_methods/mass/method")),
       wing_configuration_mode(EndnodeReadOnly<std::string>("program_settings/tube_and_wing/wing_configuration")),
       wing_area_calculation_mode(EndnodeReadOnly<std::string>(
-          "program_settings/tube_and_wing/cantilever/calculation_methods/wing_area/method")),
+          "program_settings/tube_and_wing/cantilever_backward/calculation_methods/wing_area/method")),
       user_wing_area(EndnodeReadOnly<double>(
-          "program_settings/tube_and_wing/cantilever/calculation_methods/wing_area/parameters/mode_0/wing_area")),
+          "program_settings/tube_and_wing/cantilever_backward/calculation_methods/wing_area/parameters/mode_0/wing_area")),
       sweep_calculation_mode(
-          EndnodeReadOnly<std::string>("program_settings/tube_and_wing/cantilever/calculation_methods/sweep/method")),
+          EndnodeReadOnly<std::string>("program_settings/tube_and_wing/cantilever_backward/calculation_methods/sweep/method")),
       user_sweep_angle_at_quarter_chord(EndnodeReadOnly<double>(
-          "program_settings/tube_and_wing/cantilever/calculation_methods/sweep/parameters/mode_0/sweep_angle")),
-      korn_technology_factor(EndnodeReadOnly<double>("program_settings/tube_and_wing/cantilever/calculation_methods/"
+          "program_settings/tube_and_wing/cantilever_backward/calculation_methods/sweep/parameters/mode_0/sweep_angle")),
+      korn_technology_factor(EndnodeReadOnly<double>("program_settings/tube_and_wing/cantilever_backward/calculation_methods/"
                                                      "sweep/parameters/mode_1/korn_technology_factor")),
       delta_drag_divergence_to_mach_design(
-          EndnodeReadOnly<double>("program_settings/tube_and_wing/cantilever/calculation_methods/sweep/parameters/"
+          EndnodeReadOnly<double>("program_settings/tube_and_wing/cantilever_backward/calculation_methods/sweep/parameters/"
                                   "mode_1/delta_drag_divergence_to_mach_design")),
       taper_ratio_calculation_mode(EndnodeReadOnly<std::string>(
-          "program_settings/tube_and_wing/cantilever/calculation_methods/taper_ratio/method")),
+          "program_settings/tube_and_wing/cantilever_backward/calculation_methods/taper_ratio/method")),
       user_taper_ratio(EndnodeReadOnly<double>(
-          "program_settings/tube_and_wing/cantilever/calculation_methods/taper_ratio/parameters/mode_0/taper_ratio")),
+          "program_settings/tube_and_wing/cantilever_backward/calculation_methods/taper_ratio/parameters/mode_0/taper_ratio")),
       aspect_ratio_calculation_mode(EndnodeReadOnly<std::string>(
-          "program_settings/tube_and_wing/cantilever/calculation_methods/aspect_ratio/method")),
+          "program_settings/tube_and_wing/cantilever_backward/calculation_methods/aspect_ratio/method")),
       user_aspect_ratio(EndnodeReadOnly<double>(
-          "program_settings/tube_and_wing/cantilever/calculation_methods/aspect_ratio/parameters/mode_0/aspect_ratio")),
+          "program_settings/tube_and_wing/cantilever_backward/calculation_methods/aspect_ratio/parameters/mode_0/aspect_ratio")),
       dihedral_calculation_mode(EndnodeReadOnly<std::string>(
-          "program_settings/tube_and_wing/cantilever/calculation_methods/dihedral/method")),
+          "program_settings/tube_and_wing/cantilever_backward/calculation_methods/dihedral/method")),
       user_dihedral(EndnodeReadOnly<double>(
-          "program_settings/tube_and_wing/cantilever/calculation_methods/dihedral/parameters/mode_0/dihedral_angle")),
-      dihedral_limitation_mode(
-          EndnodeReadOnly<std::string>("program_settings/tube_and_wing/cantilever/calculation_methods/dihedral/"
-                                       "parameters/mode_1/dihedral_limitation")),
+          "program_settings/tube_and_wing/cantilever_backward/calculation_methods/dihedral/parameters/mode_0/dihedral_angle")),
+      raymer_range_value(
+          EndnodeReadOnly<double>("program_settings/tube_and_wing/cantilever_backward/calculation_methods/dihedral/"
+                                       "parameters/mode_1/raymer_range_value")),
       relative_kink_position_calculation_mode(EndnodeReadOnly<std::string>(
-          "program_settings/tube_and_wing/cantilever/calculation_methods/relative_kink_position/method")),
-      user_relative_kink(EndnodeReadOnly<double>("program_settings/tube_and_wing/cantilever/calculation_methods/"
+          "program_settings/tube_and_wing/cantilever_backward/calculation_methods/relative_kink_position/method")),
+      user_relative_kink(EndnodeReadOnly<double>("program_settings/tube_and_wing/cantilever_backward/calculation_methods/"
                                                  "relative_kink_position/parameters/mode_0/relative_kink_position")),
       user_max_inner_trailing_edge_sweep(
-          EndnodeReadOnly<double>("program_settings/tube_and_wing/cantilever/calculation_methods/"
+          EndnodeReadOnly<double>("program_settings/tube_and_wing/cantilever_backward/calculation_methods/"
                                   "relative_kink_position/parameters/mode_0/maximum_inner_trailing_edge_sweep")),
       track_based_initial_relative_kink(
-          EndnodeReadOnly<double>("program_settings/tube_and_wing/cantilever/calculation_methods/"
+          EndnodeReadOnly<double>("program_settings/tube_and_wing/cantilever_backward/calculation_methods/"
                                   "relative_kink_position/parameters/mode_1/initial_relative_kink_position")),
       track_based_max_inner_trailing_edge_sweep(
-          EndnodeReadOnly<double>("program_settings/tube_and_wing/cantilever/calculation_methods/"
+          EndnodeReadOnly<double>("program_settings/tube_and_wing/cantilever_backward/calculation_methods/"
                                   "relative_kink_position/parameters/mode_1/maximum_inner_trailing_edge_sweep")),
       wing_profile_and_thickness_calculation_mode(
-          EndnodeReadOnly<std::string>("program_settings/tube_and_wing/cantilever/calculation_methods/"
+          EndnodeReadOnly<std::string>("program_settings/tube_and_wing/cantilever_backward/calculation_methods/"
                                        "wing_profile_and_thickness_distribution/method")),
       torenbeek_jenkinson_wing_profile(
-          EndnodeReadOnly<std::string>("program_settings/tube_and_wing/cantilever/calculation_methods/"
+          EndnodeReadOnly<std::string>("program_settings/tube_and_wing/cantilever_backward/calculation_methods/"
                                        "wing_profile_and_thickness_distribution/parameters/mode_1/wing_profile")),
       max_thickness_to_chord_ratio(EndnodeReadOnly<double>(
-          "program_settings/tube_and_wing/cantilever/calculation_methods/wing_profile_and_thickness_distribution/"
+          "program_settings/tube_and_wing/cantilever_backward/calculation_methods/wing_profile_and_thickness_distribution/"
           "parameters/mode_1/max_thickness_to_chord_ratio")),
       airfoil_critical_factor(
-          EndnodeReadOnly<double>("program_settings/tube_and_wing/cantilever/calculation_methods/"
+          EndnodeReadOnly<double>("program_settings/tube_and_wing/cantilever_backward/calculation_methods/"
                                   "wing_profile_and_thickness_distribution/parameters/mode_1/airfoil_critical_factor")),
       control_device_mode(EndnodeReadOnly<std::string>(
-          "program_settings/tube_and_wing/cantilever/calculation_methods/control_devices/method")),
+          "program_settings/tube_and_wing/cantilever_backward/calculation_methods/control_devices/method")),
       high_lift_device_type_leading_edge(
-          EndnodeReadOnly<std::string>("program_settings/tube_and_wing/cantilever/calculation_methods/control_devices/"
+          EndnodeReadOnly<std::string>("program_settings/tube_and_wing/cantilever_backward/calculation_methods/control_devices/"
                                        "parameters/mode_1/high_lift_device_type_leading_edge")),
       high_lift_device_type_trailing_edge(
-          EndnodeReadOnly<std::string>("program_settings/tube_and_wing/cantilever/calculation_methods/control_devices/"
+          EndnodeReadOnly<std::string>("program_settings/tube_and_wing/cantilever_backward/calculation_methods/control_devices/"
                                        "parameters/mode_1/high_lift_device_type_trailing_edge")),
       spars_mode(
-          EndnodeReadOnly<std::string>("program_settings/tube_and_wing/cantilever/calculation_methods/spars/method")),
+          EndnodeReadOnly<std::string>("program_settings/tube_and_wing/cantilever_backward/calculation_methods/spars/method")),
       flops_fstrt(EndnodeReadOnly<double>(
-          "program_settings/tube_and_wing/cantilever/calculation_methods/mass/parameters/mode_0/fstrt")),
+          "program_settings/tube_and_wing/cantilever_backward/calculation_methods/mass/parameters/mode_0/fstrt")),
       flops_faert(EndnodeReadOnly<double>(
-          "program_settings/tube_and_wing/cantilever/calculation_methods/mass/parameters/mode_0/faert")),
+          "program_settings/tube_and_wing/cantilever_backward/calculation_methods/mass/parameters/mode_0/faert")),
       flops_fcomp(EndnodeReadOnly<double>(
-          "program_settings/tube_and_wing/cantilever/calculation_methods/mass/parameters/mode_0/fcomp")),
+          "program_settings/tube_and_wing/cantilever_backward/calculation_methods/mass/parameters/mode_0/fcomp")),
       flops_technology_factor(EndnodeReadOnly<double>(
-          "program_settings/tube_and_wing/cantilever/calculation_methods/mass/parameters/mode_0/technology_factor")),
+          "program_settings/tube_and_wing/cantilever_backward/calculation_methods/mass/parameters/mode_0/technology_factor")),
       chiozzotto_technology_factor(EndnodeReadOnly<double>(
-          "program_settings/tube_and_wing/cantilever/calculation_methods/mass/parameters/mode_1/technology_factor")),
+          "program_settings/tube_and_wing/cantilever_backward/calculation_methods/mass/parameters/mode_1/technology_factor")),
       chiozzotto_material(EndnodeReadOnly<std::string>(
-          "program_settings/tube_and_wing/cantilever/calculation_methods/mass/parameters/mode_1/material")),
+          "program_settings/tube_and_wing/cantilever_backward/calculation_methods/mass/parameters/mode_1/material")),
       common_airfoil_data_path(EndnodeReadOnly<std::string>("module_configuration_file/program_settings/additional_directory_paths/common_airfoil_data_path")) {}
 
-void taw::cantilever::WingDesignConfig::read(const node& xml) {
+void taw::cantilever_backward::WingDesignConfig::read(const node& xml) {
   wing_design_mode.read(xml);
   wing_mass_mode.read(xml);
   wing_configuration_mode.read(xml);
@@ -120,7 +120,7 @@ void taw::cantilever::WingDesignConfig::read(const node& xml) {
   user_aspect_ratio.read(xml);
   dihedral_calculation_mode.read(xml);
   user_dihedral.read(xml);
-  dihedral_limitation_mode.read(xml);
+  raymer_range_value.read(xml);
   relative_kink_position_calculation_mode.read(xml);
   user_relative_kink.read(xml);
   user_max_inner_trailing_edge_sweep.read(xml);
@@ -148,7 +148,7 @@ void taw::cantilever::WingDesignConfig::read(const node& xml) {
     int to_count = 0;
     do {
       result = xml.find(
-          "program_settings/tube_and_wing/cantilever/calculation_methods/wing_profile_and_thickness_distribution/"
+          "program_settings/tube_and_wing/cantilever_backward/calculation_methods/wing_profile_and_thickness_distribution/"
           "parameters/mode_0/wing_profile_and_thickness@" +
           std::to_string(to_count));
       to_count++;
@@ -157,15 +157,15 @@ void taw::cantilever::WingDesignConfig::read(const node& xml) {
     for (int i = 0; i < to_count; ++i) {
       std::string id = std::to_string(i);
       user_wing_profiles.push_back(EndnodeReadOnly<std::string>(
-          "program_settings/tube_and_wing/cantilever/calculation_methods/wing_profile_and_thickness_distribution/"
+          "program_settings/tube_and_wing/cantilever_backward/calculation_methods/wing_profile_and_thickness_distribution/"
           "parameters/mode_0/wing_profile_and_thickness@" +
           id + "/wing_profile"));
       user_thickness_to_chord.push_back(EndnodeReadOnly<double>(
-          "program_settings/tube_and_wing/cantilever/calculation_methods/wing_profile_and_thickness_distribution/"
+          "program_settings/tube_and_wing/cantilever_backward/calculation_methods/wing_profile_and_thickness_distribution/"
           "parameters/mode_0/wing_profile_and_thickness@" +
           id + "/thickness_to_chord/ratio"));
       user_eta.push_back(EndnodeReadOnly<double>(
-          "program_settings/tube_and_wing/cantilever/calculation_methods/wing_profile_and_thickness_distribution/"
+          "program_settings/tube_and_wing/cantilever_backward/calculation_methods/wing_profile_and_thickness_distribution/"
           "parameters/mode_0/wing_profile_and_thickness@" +
           id + "/thickness_to_chord/at_half_span"));
       user_wing_profiles[i].read(xml);
@@ -182,7 +182,7 @@ void taw::cantilever::WingDesignConfig::read(const node& xml) {
     int to_count = 0;
     do {
       result = xml.find(
-          "program_settings/tube_and_wing/cantilever/calculation_methods/control_devices/"
+          "program_settings/tube_and_wing/cantilever_backward/calculation_methods/control_devices/"
           "parameters/mode_0/control_device@" +
           std::to_string(to_count));
       to_count++;
@@ -190,7 +190,7 @@ void taw::cantilever::WingDesignConfig::read(const node& xml) {
     to_count--;
     for (int i = 0; i < to_count; ++i) {
       user_defined_control_devices.push_back(
-          ControlDevice("program_settings/tube_and_wing/cantilever/calculation_methods/control_devices/"
+          ControlDevice("program_settings/tube_and_wing/cantilever_backward/calculation_methods/control_devices/"
                         "parameters/mode_0/control_device@" +
                         std::to_string(i) + "/"));
       user_defined_control_devices.back().read(xml);
@@ -202,7 +202,7 @@ void taw::cantilever::WingDesignConfig::read(const node& xml) {
     int to_count = 0;
     do {
       result = xml.find(
-          "program_settings/tube_and_wing/cantilever/calculation_methods/spars/"
+          "program_settings/tube_and_wing/cantilever_backward/calculation_methods/spars/"
           "parameters/mode_0/spar@" +
           std::to_string(to_count));
       to_count++;
@@ -210,7 +210,7 @@ void taw::cantilever::WingDesignConfig::read(const node& xml) {
     to_count--;
     for (int i = 0; i < to_count; ++i) {
       user_defined_spars.push_back(
-          Spar("program_settings/tube_and_wing/cantilever/calculation_methods/spars/"
+          Spar("program_settings/tube_and_wing/cantilever_backward/calculation_methods/spars/"
                "parameters/mode_0/spar@" +
                std::to_string(i) + "/"));
       user_defined_spars.back().read(xml);
diff --git a/wing_design/src/taw/tawWingDesignConfig.h b/wing_design/src/taw/tawWingDesignConfig.h
index b34bcc5160001ae2986492ba2b284232642cc1e1..d7ca50ed31ca31aa9ca433f6c23f12d61dfa4bf2 100644
--- a/wing_design/src/taw/tawWingDesignConfig.h
+++ b/wing_design/src/taw/tawWingDesignConfig.h
@@ -32,7 +32,7 @@
 #include "lib/io_methods/sparIO.h"
 
 namespace taw {
-namespace cantilever {
+namespace cantilever_backward {
 
 #include <aixml/endnode.h>
 
@@ -67,8 +67,8 @@ class WingDesignConfig {
 
   /* Data for method - dihedral calculation*/
   EndnodeReadOnly<std::string> dihedral_calculation_mode;
-  EndnodeReadOnly<std::string> dihedral_limitation_mode;
   EndnodeReadOnly<double> user_dihedral;
+  EndnodeReadOnly<double> raymer_range_value;
 
   EndnodeReadOnly<std::string> relative_kink_position_calculation_mode;
   EndnodeReadOnly<double> user_relative_kink;
diff --git a/wing_design/src/taw/tawWingDesignData.cpp b/wing_design/src/taw/tawWingDesignData.cpp
index d3e667a065e6e3b1d2e1bf9788d8b38208c54baa..90f37ea2b370d32073d9d92803a25bae05a7fbea 100644
--- a/wing_design/src/taw/tawWingDesignData.cpp
+++ b/wing_design/src/taw/tawWingDesignData.cpp
@@ -24,7 +24,7 @@
 #include <aircraftGeometry2/fuselage.h>
 #include <aircraftGeometry2/io/convert.h>
 
-taw::cantilever::WingDesignData::WingDesignData()
+taw::cantilever_backward::WingDesignData::WingDesignData()
     : specification_icao_aerodrome_reference_code(
           EndnodeReadOnly<std::string>("requirements_and_specifications/requirements/top_level_aircraft_requirements/"
                                        "icao_aerodrome_reference_code")),
@@ -48,7 +48,7 @@ taw::cantilever::WingDesignData::WingDesignData()
       wing_mass_properties(MassPropertiesIO("component_design/wing", "wing")),
       wing_position(PositionIO("component_design/wing/position", "wing")) {}
 
-void taw::cantilever::WingDesignData::read(const node& xml) {
+void taw::cantilever_backward::WingDesignData::read(const node& xml) {
   specification_icao_aerodrome_reference_code.read(xml);
   specification_wing_mounting.read(xml);
   specification_landing_gear_mounting.read(xml);
@@ -61,7 +61,7 @@ void taw::cantilever::WingDesignData::read(const node& xml) {
   read_wing_mounted_engine_information(xml);
 }
 
-void taw::cantilever::WingDesignData::read_wing_mounted_engine_information(const node& xml) {
+void taw::cantilever_backward::WingDesignData::read_wing_mounted_engine_information(const node& xml) {
   auto propulsors_reqs = xml.getVector("aircraft_exchange_file/requirements_and_specifications/design_specification/propulsion/propulsor",1);
 
   std::vector<int> wing_mounted_engine_ids;
@@ -104,7 +104,7 @@ void taw::cantilever::WingDesignData::read_wing_mounted_engine_information(const
 
 }
 
-void taw::cantilever::WingDesignData::read_fuselage(std::filesystem::path path,
+void taw::cantilever_backward::WingDesignData::read_fuselage(std::filesystem::path path,
                                                     std::filesystem::path geometry_data_dir) {
   std::shared_ptr<node> acxml = aixml::openDocument(path);
   geom2::FuselageFactory fuselage_factory{acxml, geometry_data_dir};
@@ -112,7 +112,7 @@ void taw::cantilever::WingDesignData::read_fuselage(std::filesystem::path path,
   fuselage = fuselage_factory.create("fuselage/specific/geometry/fuselage@0");
 }
 
-void taw::cantilever::WingDesignData::update_wing(node& xml) {
+void taw::cantilever_backward::WingDesignData::update_wing(node& xml) {
   geom2::io::SurfaceType io = geom2::io::Wing(wing);
   const std::string path_to_geometry = "component_design/wing/specific/geometry";
   std::visit(geom2::io::AixmlConverter(xml[path_to_geometry],
@@ -120,7 +120,7 @@ void taw::cantilever::WingDesignData::update_wing(node& xml) {
              io);
 }
 
-void taw::cantilever::WingDesignData::update_spars(node& xml) {
+void taw::cantilever_backward::WingDesignData::update_spars(node& xml) {
   for (size_t i = 0; i < spars.size(); ++i) {
     geom2::io::SurfaceType io_spar = geom2::io::Spar(spars[i]);
     const std::string path_to_spars = "component_design/wing/specific/geometry/aerodynamic_surface@0/parameters/spars";
@@ -131,7 +131,7 @@ void taw::cantilever::WingDesignData::update_spars(node& xml) {
   }
 }
 
-void taw::cantilever::WingDesignData::update_control_devices(node& xml) {
+void taw::cantilever_backward::WingDesignData::update_control_devices(node& xml) {
   for (size_t i = 0; i < control_devices.size(); ++i) {
     geom2::io::SurfaceType io_control_device = geom2::io::ControlDevice(control_devices[i]);
     const std::string path_to_control_devices = "component_design/wing/specific/geometry/aerodynamic_surface@0/parameters/control_devices";
@@ -152,7 +152,7 @@ void taw::cantilever::WingDesignData::update_control_devices(node& xml) {
   }
 }
 
-void taw::cantilever::WingDesignData::update(node& xml) {
+void taw::cantilever_backward::WingDesignData::update(node& xml) {
   auto tmp = xml.find("component_design/wing");
   if (tmp != nullptr) {
     tmp->deleteChildren();
diff --git a/wing_design/src/taw/tawWingDesignData.h b/wing_design/src/taw/tawWingDesignData.h
index 44d059e8dcb392cc21a24c605153ccb4d7ed544e..26fa6af747b2d7276dfc9eb5a66a49242a9dfa47 100644
--- a/wing_design/src/taw/tawWingDesignData.h
+++ b/wing_design/src/taw/tawWingDesignData.h
@@ -31,7 +31,7 @@
 #include "lib/io_methods/massPropertiesIO.h"
 #include "lib/io_methods/positionIO.h"
 namespace taw {
-namespace cantilever {
+namespace cantilever_backward {
 class WingDesignData {
  public:
   WingDesignData();
diff --git a/wing_design/src/wingDesign.cpp b/wing_design/src/wingDesign.cpp
index 16b197fcd3d2ae59ac67022c2e42dd1f47cd3f75..4a9836354b5f47f3aa5167f3bc96f5cfe1240945 100644
--- a/wing_design/src/wingDesign.cpp
+++ b/wing_design/src/wingDesign.cpp
@@ -34,15 +34,15 @@
 WingDesign::WingDesign(const int argc, char *argv[], const std::string &toolName, const std::string &toolVersion)
     : Module(argc, argv, toolName, toolVersion) {
   std::string configuration = rtIO_->aircraft_configuration_type();
-  std::string wing_type = "cantilever";
-  
+  std::string wing_type_mode = EndnodeReadOnly<std::string>("program_settings/" + configuration + "/wing_configuration").read(rtIO_->moduleConfig).value();
+
   /* Register existing strategies */
   /* tube and wing strategies */
-  strategy.registerStrategy<taw::cantilever::Wing>({"tube_and_wing", "cantilever"});
+  strategy.registerStrategy<taw::cantilever_backward::Wing>({"tube_and_wing", "mode_0"});
 
   /* blended wing body strategies */
-  strategy.registerStrategy<bwb::low::Wing>({"blended_wing_body", "cantilever"});
-  
+  strategy.registerStrategy<bwb::low::Wing>({"blended_wing_body", "mode_0"});
+
   /* Set desired strategy */
-  strategy.setStrategy({configuration, wing_type}, rtIO_);
+  strategy.setStrategy({configuration, wing_type_mode}, rtIO_);
 }
diff --git a/wing_design/wing_design_conf.xml b/wing_design/wing_design_conf.xml
index e744617754bc1b1090a49cf074fce3c78304f209..a7912967233496a36ff2275b7d7e45f7fdd83eec 100644
--- a/wing_design/wing_design_conf.xml
+++ b/wing_design/wing_design_conf.xml
@@ -53,10 +53,10 @@
 			</design_mode>
 		</modes>
 		<tube_and_wing description="settings for tube and wing (TAW)">
-			<wing_configuration description="selector mode_0: cantilever">
+			<wing_configuration description="selector mode_0: cantilever_backward">
 				<value>mode_0</value>
 			</wing_configuration>
-			<cantilever description="cantilever design information">
+			<cantilever_backward description="cantilever design information">
 				<calculation_methods description="calculation methods for specific parameter">
 					<wing_area description="wing area calculation method">
 						<method description="selector mode_0: user_defined, mode_1: by_loading_and_mtom">
@@ -80,9 +80,9 @@
 						<parameters description="sweep method parameters">
 							<mode_0 description="user_defined">
 								<sweep_angle description="sweep angle at quarter chord">
-									<value>27</value>
+									<value>25</value>
 									<unit>deg</unit>
-									<lower_boundary>-60</lower_boundary>
+									<lower_boundary>0</lower_boundary>
 									<upper_boundary>60</upper_boundary>
 								</sweep_angle>
 							</mode_0>
@@ -131,9 +131,12 @@
 								</dihedral_angle>
 							</mode_0>
 							<mode_1 description="by_wing_position_and_quarter_chord_sweep">
-								<dihedral_limitation description="selector mode_0: raymer, mode_1: howe">
-									<value>mode_0</value>
-								</dihedral_limitation>
+								<raymer_range_value description="linear interpolation from lowest to highest dihedral value according to raymer limits">
+									<value>0.25</value>
+									<unit>1</unit>
+									<lower_boundary>0.0</lower_boundary>
+									<upper_boundary>1.0</upper_boundary>
+								</raymer_range_value>
 							</mode_1>
 						</parameters>
 					</dihedral>
@@ -147,7 +150,7 @@
 									<value>10.3</value>
 									<unit>1</unit>
 									<lower_boundary>6</lower_boundary>
-									<upper_boundary>15</upper_boundary>
+									<upper_boundary>20</upper_boundary>
 								</aspect_ratio>
 							</mode_0>
 						</parameters>
@@ -167,8 +170,8 @@
 								<maximum_inner_trailing_edge_sweep description="maximum inner trailing edge sweep - sets maximum possible inner trailing edge sweep">
 									<value>3.0</value>
 									<unit>deg</unit>
-									<lower_boundary>0.0</lower_boundary>
-									<upper_boundary>20.0</upper_boundary>
+									<lower_boundary>-30.0</lower_boundary>
+									<upper_boundary>30.0</upper_boundary>
 								</maximum_inner_trailing_edge_sweep>
 							</mode_0>
 							<mode_1>
@@ -722,7 +725,7 @@
 						</parameters>
 					</spars>
 				</calculation_methods>
-			</cantilever>
+			</cantilever_backward>
 		</tube_and_wing>
 		<blended_wing_body>
 			<fidelity_selection description="selection of fidelity level">