diff --git a/lisainstrument/instrument.py b/lisainstrument/instrument.py
index 08b10a9456350ec4fcce9ea275165cc862faf325..932f564fd76cd2ced4fb15034ed3d4c41601339f 100644
--- a/lisainstrument/instrument.py
+++ b/lisainstrument/instrument.py
@@ -702,90 +702,91 @@ class Instrument:
             self.invert_timer_deviations(self.local_timer_deviations[sc], sc)
         )
 
-        timestamp = lambda x, sc: self.interpolate(x, -self.inverse_timer_deviations[sc] * self.physics_fs)
+        self.timestamped = lambda mosa, x: self.interpolate(x,
+            -self.inverse_timer_deviations[ForEachMOSA.sc(mosa)] * self.physics_fs)
 
         logger.info("Sampling inter-spacecraft beatnotes to THE grid")
 
         logger.debug("Sampling inter-spacecraft carrier beatnote fluctuations to THE grid")
         self.the_isc_carrier_offsets = ForEachMOSA(lambda mosa:
-            timestamp(self.tps_isc_carrier_offsets[mosa] / (1 + self.clock_noise_offsets[mosa[0]]), mosa[0])
-        )
+            self.tps_isc_carrier_offsets[mosa] / (1 + self.clock_noise_offsets[mosa[0]])
+        ).transformed(self.timestamped)
 
         logger.debug("Sampling inter-spacecraft carrier beatnote fluctuations to THE grid")
         self.the_isc_carrier_fluctuations = ForEachMOSA(lambda mosa:
-            timestamp(self.tps_isc_carrier_fluctuations[mosa] / (1 + self.clock_noise_offsets[mosa[0]])
+            self.tps_isc_carrier_fluctuations[mosa] / (1 + self.clock_noise_offsets[mosa[0]])
                 - self.tps_isc_carrier_offsets[mosa] * self.clock_noise_fluctuations[mosa[0]]
-                / (1 + self.clock_noise_offsets[mosa[0]])**2, mosa[0])
-        )
+                / (1 + self.clock_noise_offsets[mosa[0]])**2
+        ).transformed(self.timestamped)
 
         logging.debug("Sampling inter-spacecraft upper sideband beatnote offsets to THE grid")
         self.the_isc_usb_offsets = ForEachMOSA(lambda mosa:
-            timestamp(self.tps_isc_usb_offsets[mosa] / (1 + self.clock_noise_offsets[mosa[0]]), mosa[0])
-        )
+            self.tps_isc_usb_offsets[mosa] / (1 + self.clock_noise_offsets[mosa[0]])
+        ).transformed(self.timestamped)
 
         logger.debug("Sampling inter-spacecraft upper sideband beatnote fluctuations to THE grid")
         self.the_isc_usb_fluctuations = ForEachMOSA(lambda mosa:
-            timestamp(self.tps_isc_usb_fluctuations[mosa] / (1 + self.clock_noise_offsets[mosa[0]])
+            self.tps_isc_usb_fluctuations[mosa] / (1 + self.clock_noise_offsets[mosa[0]])
                 - self.tps_isc_usb_offsets[mosa] * self.clock_noise_fluctuations[mosa[0]]
-                / (1 + self.clock_noise_offsets[mosa[0]])**2, mosa[0])
-        )
+                / (1 + self.clock_noise_offsets[mosa[0]])**2
+        ).transformed(self.timestamped)
 
         logger.info("Sampling measured pseudo-ranges to THE grid")
         self.the_mprs = ForEachMOSA(lambda mosa:
-            timestamp(self.tps_mprs[mosa], mosa[0])
-        )
+            self.tps_mprs[mosa]
+        ).transformed(self.timestamped)
 
         logger.info("Sampling test-mass beatnotes to THE grid")
 
         logger.debug("Sampling test-mass carrier beatnote offsets to THE grid")
         self.the_tm_carrier_offsets = ForEachMOSA(lambda mosa:
-            timestamp(self.tps_tm_carrier_offsets[mosa] / (1 + self.clock_noise_offsets[mosa[0]]), mosa[0])
-        )
+            self.tps_tm_carrier_offsets[mosa] / (1 + self.clock_noise_offsets[mosa[0]])
+        ).transformed(self.timestamped)
 
         logger.debug("Sampling test-mass carrier beatnote fluctuations to THE grid")
         self.the_tm_carrier_fluctuations = ForEachMOSA(lambda mosa:
-            timestamp(self.tps_tm_carrier_fluctuations[mosa] / (1 + self.clock_noise_offsets[mosa[0]])
+            self.tps_tm_carrier_fluctuations[mosa] / (1 + self.clock_noise_offsets[mosa[0]])
                 - self.tps_tm_carrier_offsets[mosa] * self.clock_noise_fluctuations[mosa[0]]
-                / (1 + self.clock_noise_offsets[mosa[0]])**2, mosa[0])
-        )
+                / (1 + self.clock_noise_offsets[mosa[0]])**2
+        ).transformed(self.timestamped)
 
         logger.debug("Sampling test-mass upper sideband beatnote offsets to THE grid")
         self.the_tm_usb_offsets = ForEachMOSA(lambda mosa:
-            timestamp(self.tps_tm_usb_offsets[mosa] / (1 + self.clock_noise_offsets[mosa[0]]), mosa[0])
-        )
+            self.tps_tm_usb_offsets[mosa] / (1 + self.clock_noise_offsets[mosa[0]])
+        ).transformed(self.timestamped)
 
         logging.debug("Sampling test-mass upper sideband beatnote fluctuations to THE grid")
         self.the_tm_usb_fluctuations = ForEachMOSA(lambda mosa:
-            timestamp(self.tps_tm_usb_fluctuations[mosa] / (1 + self.clock_noise_offsets[mosa[0]])
+            self.tps_tm_usb_fluctuations[mosa] / (1 + self.clock_noise_offsets[mosa[0]])
                 - self.tps_tm_usb_offsets[mosa] * self.clock_noise_fluctuations[mosa[0]]
-                / (1 + self.clock_noise_offsets[mosa[0]])**2, mosa[0])
-        )
+                / (1 + self.clock_noise_offsets[mosa[0]])**2
+        ).transformed(self.timestamped)
 
         logger.info("Sampling reference beatnotes to THE grid")
 
         logger.debug("Sampling reference carrier beatnote offsets to THE grid")
         self.the_ref_carrier_offsets = ForEachMOSA(lambda mosa:
-            timestamp(self.tps_ref_carrier_offsets[mosa] / (1 + self.clock_noise_offsets[mosa[0]]), mosa[0])
-        )
+            self.tps_ref_carrier_offsets[mosa] / (1 + self.clock_noise_offsets[mosa[0]])
+        ).transformed(self.timestamped)
 
         logger.debug("Sampling reference carrier beatnote fluctuations to THE grid")
         self.the_ref_carrier_fluctuations = ForEachMOSA(lambda mosa:
-            timestamp(self.tps_ref_carrier_fluctuations[mosa] / (1 + self.clock_noise_offsets[mosa[0]])
+            self.tps_ref_carrier_fluctuations[mosa] / (1 + self.clock_noise_offsets[mosa[0]])
                 - self.tps_ref_carrier_offsets[mosa] * self.clock_noise_fluctuations[mosa[0]]
-                / (1 + self.clock_noise_offsets[mosa[0]])**2, mosa[0])
-        )
+                / (1 + self.clock_noise_offsets[mosa[0]])**2
+        ).transformed(self.timestamped)
 
         logger.debug("Sampling reference upper sideband beatnote offsets to THE grid")
         self.the_ref_usb_offsets = ForEachMOSA(lambda mosa:
-            timestamp(self.tps_ref_usb_offsets[mosa] / (1 + self.clock_noise_offsets[mosa[0]]), mosa[0])
-        )
+            self.tps_ref_usb_offsets[mosa] / (1 + self.clock_noise_offsets[mosa[0]])
+        ).transformed(self.timestamped)
 
         logger.debug("Sampling reference upper sideband beatnote fluctuations to THE grid")
         self.the_ref_usb_fluctuations = ForEachMOSA(lambda mosa:
-            timestamp(self.tps_ref_usb_fluctuations[mosa] / (1 + self.clock_noise_offsets[mosa[0]])
+            self.tps_ref_usb_fluctuations[mosa] / (1 + self.clock_noise_offsets[mosa[0]])
                 - self.tps_ref_usb_offsets[mosa] * self.clock_noise_fluctuations[mosa[0]]
-                / (1 + self.clock_noise_offsets[mosa[0]])**2, mosa[0])
-        )
+                / (1 + self.clock_noise_offsets[mosa[0]])**2
+        ).transformed(self.timestamped)
 
         ## Total frequencies