diff --git a/dynamics.py b/dynamics.py
index 5a0992f26625e54f38fda439408747ad7997fc2d..1a13e5bb5cc251bf8d3fa387890182b58dcfd7c2 100644
--- a/dynamics.py
+++ b/dynamics.py
@@ -1395,114 +1395,86 @@ def resample(
     if dynamic == target_dynamic:
         return values
     elif isinstance(dynamic, TreeDynamic) and isinstance(target_dynamic, TreeDynamic):
-        return resample_tree(values, dynamic, target_dynamic)
+        if dynamic.root() != target_dynamic.root():
+            raise ValueError("Both dynamics have to have the same root dynamic!")
+        (
+            assignment,
+            source_start,
+            source_end,
+            target_start,
+            target_end,
+        ) = dynamic.dynamic_tree.get_assignment(dynamic, target_dynamic)
+        return assignment.resample(
+            values, source_start, source_end, target_start, target_end
+        )
     elif isinstance(dynamic, AggregatedDynamic) and isinstance(
         target_dynamic, PeriodDynamic
     ):
-        return resample_aggregation_down(values, dynamic, target_dynamic)
+        if target_dynamic.aggregated_dynamic != dynamic:
+            raise ValueError(
+                f"The period dynamic has to be part of the aggregated dynamic!"
+            )
+        offset = dynamic.offset(target_dynamic.period_index)
+        return values[:, offset[0] : offset[1]]
     else:
         raise ValueError(
             f"Invalid dynamic type combination {type(dynamic)} -> {type(target_dynamic)}!"
         )
 
 
-def resample_tree(
-    values, dynamic: TreeDynamic, target_dynamic: TreeDynamic
-):  # values: type hinting a np-array, type hinting a np-array
-    if dynamic.root() != target_dynamic.root():
-        raise ValueError("Both dynamics have to have the same root dynamic!")
-    (
-        assignment,
-        source_start,
-        source_end,
-        target_start,
-        target_end,
-    ) = dynamic.dynamic_tree.get_assignment(dynamic, target_dynamic)
-    return assignment.resample(
-        values, source_start, source_end, target_start, target_end
-    )
-
-
-def resample_aggregation_down(
-    values, dynamic: AggregatedDynamic, target_dynamic: PeriodDynamic
-):  # values: type hinting a np-array, type hinting a np-array
-    if target_dynamic.aggregated_dynamic != dynamic:
-        raise ValueError(
-            f"The period dynamic has to be part of the aggregated dynamic!"
-        )
-    offset = dynamic.offset(target_dynamic.period_index)
-    return values[:, offset[0] : offset[1]]
-
-
 def resample_into(
     values, dynamic: Dynamic, target_values, target_dynamic: Dynamic
 ):  # values: type hinting a np-array, target_values: type hinting a np-array
     if dynamic == target_dynamic:
         target_values[:] = values
     elif isinstance(dynamic, TreeDynamic) and isinstance(target_dynamic, TreeDynamic):
-        resample_into_tree(values, dynamic, target_values, target_dynamic)
+        if dynamic.root() != target_dynamic.root():
+            raise ValueError("Both dynamics have to have the same root dynamic!")
+        (
+            assignment,
+            source_start,
+            source_end,
+            target_start,
+            target_end,
+        ) = dynamic.dynamic_tree.get_assignment(dynamic, target_dynamic)
+        assignment.resample_into(
+            values, source_start, source_end, target_values, target_start, target_end
+        )
     elif isinstance(dynamic, PeriodDynamic) and isinstance(
         target_dynamic, AggregatedDynamic
     ):
-        resample_aggregation_up(values, dynamic, target_values, target_dynamic)
+        if dynamic.aggregated_dynamic != target_dynamic:
+            raise ValueError(
+                f"The period dynamic has to be part of the aggregated dynamic!"
+            )
+        offset = target_dynamic.offset(dynamic.period_index)
+        target_values[:, offset[0] : offset[1]] = values
     else:
         raise ValueError(
             f"Invalid dynamic type combination {type(dynamic)} -> {type(target_dynamic)}!"
         )
 
 
-def resample_into_tree(
-    values, dynamic: TreeDynamic, target_values, target_dynamic: TreeDynamic
-):  # values: type hinting a np-array, target_values: type hinting a np-array
-    if dynamic.root() != target_dynamic.root():
-        raise ValueError("Both dynamics have to have the same root dynamic!")
-    (
-        assignment,
-        source_start,
-        source_end,
-        target_start,
-        target_end,
-    ) = dynamic.dynamic_tree.get_assignment(dynamic, target_dynamic)
-    assignment.resample_into(
-        values, source_start, source_end, target_values, target_start, target_end
-    )
-
-
-def resample_aggregation_up(
-    values, dynamic: PeriodDynamic, target_values, target_dynamic: AggregatedDynamic
-):  # values: type hinting a np-array, target_values: type hinting a np-array
-    if dynamic.aggregated_dynamic != target_dynamic:
-        raise ValueError(
-            f"The period dynamic has to be part of the aggregated dynamic!"
-        )
-    offset = target_dynamic.offset(dynamic.period_index)
-    target_values[:, offset[0] : offset[1]] = values
-
-
 def resample_variable(variable, dynamic: Dynamic, target_dynamic: Dynamic):
     if dynamic == target_dynamic:
         return variable
     elif isinstance(dynamic, TreeDynamic) and isinstance(target_dynamic, TreeDynamic):
-        return resample_variable_tree(variable, dynamic, target_dynamic)
+        (
+            assignment,
+            source_start,
+            source_end,
+            target_start,
+            target_end,
+        ) = dynamic.dynamic_tree.get_assignment(dynamic, target_dynamic)
+        return assignment.resample_variable(
+            variable, source_start, source_end, target_start, target_end
+        )
     else:
         raise ValueError(
             f"Invalid dynamic type combination {type(dynamic)} -> {type(target_dynamic)}!"
         )
 
 
-def resample_variable_tree(variable, dynamic: TreeDynamic, target_dynamic: TreeDynamic):
-    (
-        assignment,
-        source_start,
-        source_end,
-        target_start,
-        target_end,
-    ) = dynamic.dynamic_tree.get_assignment(dynamic, target_dynamic)
-    return assignment.resample_variable(
-        variable, source_start, source_end, target_start, target_end
-    )
-
-
 class Profile:
     def __init__(self, values, dynamic: Dynamic):  # values: type hinting np-array
         self.values = values