diff --git a/dynamics/Dynamic.py b/dynamics/Dynamic.py
index 45cfc51307fbafa7ec5927b918e1da6cbaa157e5..210ca446051e32c24b38e7fa3764839e414f498e 100644
--- a/dynamics/Dynamic.py
+++ b/dynamics/Dynamic.py
@@ -334,6 +334,19 @@ class PartialDynamic(Dynamic):
         if reference_start < self.start or self.end < reference_start or reference_end < self.start or self.end < reference_end:
             raise IndexError("The dynamic does not have all requested indices for the sub dynamic!")
         return PartialDynamic(self.reference, reference_start, reference_end)
+    
+class Profile:
+    def __init__(self, values, dynamic):
+        self.values = values
+        self.dynamic = dynamic
+
+    # returns a profile resampled to the given dynamic
+    def resample(self, target_dynamic):
+        return Profile(resample(self.values, self.dynamic, target_dynamic), target_dynamic)
+    
+    # return values resampled to the given dynamic
+    def resample_values(self, target_dynamic):
+        return resample(self.values, self.dynamic, target_dynamic)
 
 # only works if both dynamics share the same root dynamic
 def resample(values, dynamic, target_dynamic):
diff --git a/input_profile_processor/input_profile_processor.py b/input_profile_processor/input_profile_processor.py
index 4c48e2f8fea6d7af04f6a229d447dfa7a53bdbef..de27ae282652b496c9a4d5f2e927703371778dd6 100644
--- a/input_profile_processor/input_profile_processor.py
+++ b/input_profile_processor/input_profile_processor.py
@@ -28,6 +28,7 @@ from Tooling.demand_generator.electrical_demand.ElectricalDemand import Electric
 from Tooling.demand_generator.thermal_demand.ThermalDemand import ThermalDemand
 from Tooling.input_profile_processor.calc_irradiance import generate_g_t_series
 from Tooling.modifier import Modifier
+from Tooling.dynamics.Dynamic import Profile
 
 
 def process_input_profiles(input_profile_dict, t_start, dynamic):
@@ -74,7 +75,7 @@ def process_input_profiles(input_profile_dict, t_start, dynamic):
 
         input_profile = input_profile.squeeze()
         input_profile.set_axis(list(range(dynamic.number_of_steps())), inplace = True)
-        input_profiles[input_profile_name] = input_profile
+        input_profiles[input_profile_name] = Profile(input_profile, dynamic)
     return input_profiles
 
 def resample_profile(name, profile, t_start, dynamic, d_step_min, t_last):