diff --git a/Model_Library b/Model_Library
index 132b9b70e260f2e58fbfd27760c1e9cee1953d4b..49b3fad83c5a0ade778ba785575213a231bbaca8 160000
--- a/Model_Library
+++ b/Model_Library
@@ -1 +1 @@
-Subproject commit 132b9b70e260f2e58fbfd27760c1e9cee1953d4b
+Subproject commit 49b3fad83c5a0ade778ba785575213a231bbaca8
diff --git a/examples/BusChargingDepot/runme.py b/examples/BusChargingDepot/runme.py
index e26ebdf34f2d47efe40a3ac13bf802195d1a2546..109f04a431e8c2513741e269ed50bd01bfac4188 100644
--- a/examples/BusChargingDepot/runme.py
+++ b/examples/BusChargingDepot/runme.py
@@ -53,8 +53,8 @@ prosumer_json["additional_model_logic"]["charger_2_enable"]["enable"] = input_pr
     "bus_2_connected"
 ].values
 
-prosumer = Prosumer("LaTrielle", prosumer_json, dynamic)
+prosumer = Prosumer("LaTrielle", prosumer_json)
 
-prosumer.optimize("sized", ["annuity", "peak_power_cost"])
+prosumer.optimize("sized", dynamic, ["annuity", "peak_power_cost"])
 
 prosumer.save_results("output_files")
diff --git a/examples/BusChargingHPC/runme.py b/examples/BusChargingHPC/runme.py
index 48c535fe88a487d3e78dd52f9b6a7e7673eebdcd..6ca884b6ebf774c50286f82574cd15c72e28bfb4 100644
--- a/examples/BusChargingHPC/runme.py
+++ b/examples/BusChargingHPC/runme.py
@@ -71,8 +71,8 @@ prosumer_json["additional_model_logic"]["HPC_3_bus_2_enable"][
     "enable"
 ] = input_profiles["bus_2_connected_to_hpc_3"].values
 
-prosumer = Prosumer("LaTreille", prosumer_json, dynamic)
+prosumer = Prosumer("LaTreille", prosumer_json)
 
-prosumer.optimize("sized", ["annuity", "peak_power_cost"])
+prosumer.optimize("sized", dynamic, ["annuity", "peak_power_cost"])
 
 prosumer.save_results("output_files")
diff --git a/examples/BusChargingIMC/runme.py b/examples/BusChargingIMC/runme.py
index a1e9c2897c2e33c54de7790fdf30197cb1ed9e69..4419d05b45a2e5f25354bced27688b345c3f56ec 100644
--- a/examples/BusChargingIMC/runme.py
+++ b/examples/BusChargingIMC/runme.py
@@ -75,8 +75,8 @@ prosumer_json["components"]["bus_2_motor_inverter"][
     "max_capacity"
 ] = bus_2_moter_inverter_capacity
 
-prosumer = Prosumer("LaTreille", prosumer_json, dynamic)
+prosumer = Prosumer("LaTreille", prosumer_json)
 
-prosumer.optimize("sized", ["annuity", "peak_power_cost"])
+prosumer.optimize("sized", dynamic, ["annuity", "peak_power_cost"])
 
 prosumer.save_results("output_files")
diff --git a/examples/aggregation/runme.py b/examples/aggregation/runme.py
index fb2ae35335769b9886a1808b12f751e53a4240af..d51bac2a48f38c7e6f3c67965c3a0d82937515a8 100644
--- a/examples/aggregation/runme.py
+++ b/examples/aggregation/runme.py
@@ -43,8 +43,8 @@ prosumer_json["components"]["consumption"]["consumption"] = profiles[
     "electricity_demand"
 ]
 
-prosumer = Prosumer("my_prosumer", prosumer_json, aggregated_dynamic)
+prosumer = Prosumer("my_prosumer", prosumer_json)
 
-prosumer.optimize("sized", ["annuity"])
+prosumer.optimize("sized", aggregated_dynamic, ["annuity"])
 
 prosumer.save_results("output_files")
diff --git a/examples/complex_prosumer/runme.py b/examples/complex_prosumer/runme.py
index 58b24ed7b5fdfa7821a4ed8f4269bca6dbf5c0cb..10c02ec90029dca24345bcfa61fdc16078edfe95 100644
--- a/examples/complex_prosumer/runme.py
+++ b/examples/complex_prosumer/runme.py
@@ -47,9 +47,9 @@ prosumer_json["components"]["hot_water_consumption"]["consumption"] = input_prof
     "hot_water_demand"
 ]
 
-prosumer = Prosumer("my_prosumer", prosumer_json, dynamic)
+prosumer = Prosumer("my_prosumer", prosumer_json)
 
-prosumer.optimize("sized", ["annuity"])
+prosumer.optimize("sized", dynamic, ["annuity"])
 
 prosumer.save_results("output_files")
 
diff --git a/examples/district/runme.py b/examples/district/runme.py
index 0cb88058e6ed4c54206fa63d271f62cf3c965e38..a73fb8a538fc906ea83ac88aa90930277c28770e 100644
--- a/examples/district/runme.py
+++ b/examples/district/runme.py
@@ -48,16 +48,18 @@ for prosumer_name, prosumer_path in prosumer_paths.items():
         "electricity_demand"
     ]
 
-    prosumers[prosumer_name] = Prosumer(prosumer_name, prosumer_json, dynamic)
+    prosumers[prosumer_name] = Prosumer(prosumer_name, prosumer_json)
 
 for prosumer_name, prosumer in prosumers.items():
-    prosumer.optimize("sized", ["annuity"])
+    prosumer.optimize("sized", dynamic, ["annuity"])
 
     prosumer.save_results("output_files")
 
 with open("asset.json") as f:
     district_asset_json = json.load(f)
 
+district_asset = DistrictAsset("my_asset", district_asset_json)
+
 district_asset = DistrictAsset("my_asset", district_asset_json, dynamic)
 
 with open("district.json") as f:
@@ -69,9 +71,9 @@ district_json["components"]["grid"]["injection_price"] = input_profiles[
 ]
 
 district = District(
-    "my_district", district_json, prosumers, {"my_asset": district_asset}, dynamic
+    "my_district", district_json, prosumers, {"my_asset": district_asset}
 )
 
-district.optimize("sized", ["annuity"])
+district.optimize("sized", dynamic, ["annuity"])
 
 district.save_results("output_files")
diff --git a/examples/simple_prosumer/runme.py b/examples/simple_prosumer/runme.py
index 2e8fc91388a4cdd629f6a93f2986015e16f2e1db..c2a0444e91b24cb87d0bb67f56a08124dda112e9 100644
--- a/examples/simple_prosumer/runme.py
+++ b/examples/simple_prosumer/runme.py
@@ -40,8 +40,8 @@ prosumer_json["components"]["consumption"]["consumption"] = input_profiles[
     "electricity_demand"
 ]
 
-prosumer = Prosumer("my_prosumer", prosumer_json, dynamic)
+prosumer = Prosumer("my_prosumer", prosumer_json)
 
-prosumer.optimize("sized", ["annuity"])
+prosumer.optimize("sized", dynamic, ["annuity"])
 
 prosumer.save_results("output_files")