diff --git a/navipy/trajectories/__init__.py b/navipy/trajectories/__init__.py
index 217636e823151be50f0b66169bcf1fb58e3c0593..d538e65b03b85efde3a36cbdf80849329d7e4e2b 100644
--- a/navipy/trajectories/__init__.py
+++ b/navipy/trajectories/__init__.py
@@ -233,6 +233,7 @@ class Trajectory(pd.DataFrame):
     def q_3(self, q_3):
         self.__set_q_i(3, q_3)
 
+    # overload of save/load function
     def read_csv(self, filename, sep=',', header=[0, 1], index_col=0):
         """ Load from a hdf file
         """
@@ -242,8 +243,19 @@ class Trajectory(pd.DataFrame):
         return self
 
     def read_hdf(self, filename):
-        raise NameError('Not implemented')
+        df = pd.read_hdf(filename)
+        self.from_dataframe(df)
+        return self
+
+    def to_hdf(self, filename):
+        df = pd.DataFrame(self)
+        df.to_hdf(filename, key='posorients')
+
+    def to_csv(self, filename):
+        df = pd.DataFrame(self)
+        df.to_csv(filename)
 
+    # initialisation from variables
     def from_array(self, nparray, rotconv):
         """ Assign trajectory from a numpy array
             N x 6 (rotconv = Euler angles)