diff --git a/architecture.py b/architecture.py
index 836fa0e9beba90b96a6c10b85284230276c2ddfd..1d43ae0ba7bb6f8a19e8fc6ada92ccb6db873931 100644
--- a/architecture.py
+++ b/architecture.py
@@ -1,5 +1,5 @@
 from Model_Library.dynamics import Dynamic, DynamicTree, TreeDynamic
-from Model_Library.optimization_model import OptimizationBlock, OptimizationModel
+import Model_Library
 
 import abc
 from dataclasses import dataclass
@@ -998,8 +998,8 @@ class PeriodAggregation:
         self,
         variable,
         name: str,
-        start_block: OptimizationBlock,
-        end_blocks: List[OptimizationBlock],
+        start_block: "Model_Library.optimization_model.OptimizationBlock",
+        end_blocks: List["Model_Library.optimization_model.OptimizationBlock"],
     ):  # variable: type hinting a np-array, type hinting a np-array
         aggregated_variables = np.empty(len(self.period_blocks), dtype=object)
         for i, end_block in enumerate(end_blocks):
@@ -1317,7 +1317,7 @@ class ResamplingStep:
         v_map: Dict,
         name: str,
         block_prefix: str,
-        model: OptimizationModel,
+        model: "Model_Library.optimization_model.OptimizationModel",
     ):
         pass
 
@@ -1344,7 +1344,7 @@ class CopyStep(ResamplingStep):
         v_map: Dict,
         name: str,
         block_prefix: str,
-        model: OptimizationModel,
+        model: "Model_Library.optimization_model.OptimizationModel",
     ):
         v_map[self.end_v] = v_map[self.start_v]
 
@@ -1377,7 +1377,7 @@ class AssignmentStep(ResamplingStep):
         v_map: Dict,
         name: str,
         block_prefix: str,
-        model: OptimizationModel,
+        model: "Model_Library.optimization_model.OptimizationModel",
     ):
         start_dynamic = arcnitecture.underlying_dynamics[self.start_v.id]
         end_dynamic = arcnitecture.underlying_dynamics[self.end_v.id]
@@ -1417,7 +1417,7 @@ class AggregationUpStep(ResamplingStep):
         v_map: Dict,
         name: str,
         block_prefix: str,
-        model: OptimizationModel,
+        model: "Model_Library.optimization_model.OptimizationModel",
     ):
         data = np.empty(len(self.start_vs), dtype=object)
         for i, start_v in enumerate(self.start_vs):
@@ -1458,7 +1458,7 @@ class AggregationDownStep(ResamplingStep):
         v_map: Dict,
         name: str,
         block_prefix: str,
-        model: OptimizationModel,
+        model: "Model_Library.optimization_model.OptimizationModel",
     ):
         data = arcnitecture.all_period_aggregations[self.id].aggregate_variable_down(
             v_map[self.start_v],
@@ -1778,7 +1778,7 @@ class Resampling:
     def execute_result(
         self,
         vars_iter,
-        block: OptimizationBlock,
+        block: "Model_Library.optimization_model.OptimizationBlock",
         dynamic: ArchitectureDynamic,
         target_values,
         target_dynamic: ArchitectureDynamic,
@@ -1807,7 +1807,7 @@ class Resampling:
     def execute_fs_result(
         self,
         vars_iter,
-        block: OptimizationBlock,
+        block: "Model_Library.optimization_model.OptimizationBlock",
         dynamic: ArchitectureDynamic,
         target_values,
         target_dynamic: ArchitectureDynamic,
@@ -1832,7 +1832,7 @@ class Resampling:
         self,
         name: str,
         block_prefix: str,
-        model: OptimizationModel,
+        model: "Model_Library.optimization_model.OptimizationModel",
         dynamic: ArchitectureDynamic,
         target_dynamic: ArchitectureDynamic,
     ):
@@ -1888,7 +1888,7 @@ def resample(
 
 def resample_result(
     vars_iter,
-    block: OptimizationBlock,
+    block: "Model_Library.optimization_model.OptimizationBlock",
     dynamic: ArchitectureDynamic,
     target_values,
     target_dynamic: ArchitectureDynamic,
@@ -1911,7 +1911,7 @@ def resample_result(
 
 def resample_first_state_result(
     vars_iter,
-    block: OptimizationBlock,
+    block: "Model_Library.optimization_model.OptimizationBlock",
     dynamic: ArchitectureDynamic,
     target_values,
     target_dynamic: ArchitectureDynamic,
@@ -1933,7 +1933,7 @@ def resample_first_state_result(
 def resample_variable(
     name: str,
     block_prefix: str,
-    model: OptimizationModel,
+    model: "Model_Library.optimization_model.OptimizationModel",
     dynamic: ArchitectureDynamic,
     target_dynamic: ArchitectureDynamic,
 ):