Index: src/ammosreader/PDW.py
===================================================================
--- src/ammosreader/PDW.py	(revision 5fa1535492ad463f5238dc63c2f7dfb7a12a3b9d)
+++ src/ammosreader/PDW.py	(revision bfab5ea359bbc1630806a8538ad1f6c9e40e1b14)
@@ -33,5 +33,5 @@
         parts = struct.unpack('Q4s4s4s4s4s4s', byte_string)
         nanoseconds = (parts[0])
-        time_of_arrival = np.datetime64(nanoseconds, 'ns')  #datetime.datetime.utcfromtimestamp(seconds / 1000000000)
+        time_of_arrival = np.datetime64(nanoseconds, 'ns')
 
         third_entry = bin(int.from_bytes(parts[1], byteorder='little'))
@@ -94,6 +94,6 @@
                  pulse_level_or_pulse_field_strength, region_of_interest, azimuth_confidence, modulation,
                  sector, polarity, df_quality, elevation, azimuth, channel):
-
-        """
+        r"""
+        I return an instance of an Pulse Data word.
 
         :param time_of_arrival: nanoseconds since 1970-01-01 00:00:00
@@ -142,7 +142,5 @@
         :return: An instance of class PDW with attributes set according to the data of a data body
         :rtype: PDW
-
         """
-
         self.time_of_arrival = time_of_arrival
         self.pdw_format_identifier = pdw_format_identifier
Index: src/ammosreader/PPDWContainer.py
===================================================================
--- src/ammosreader/PPDWContainer.py	(revision 5fa1535492ad463f5238dc63c2f7dfb7a12a3b9d)
+++ src/ammosreader/PPDWContainer.py	(revision bfab5ea359bbc1630806a8538ad1f6c9e40e1b14)
@@ -1,15 +1,17 @@
 class PPDWContainer():
-
+    """
+    I store multiple signals imported from one or more .ppdw files
+    .. automethod:: __init__
     """
 
-    I store multiple signals imported from one or more .ppdw files
+    def __init__(self, name, signals=None):
 
-    .. automethod:: __init__
+        if signals is None:
+            self.signals = []
+        else:
+            self.signals = signals
 
-    """
-
-    def __init__(self, signals):
-
-        self.signals = signals
+    def add(self, a_pdw):
+        self.signals.append(a_pdw)
 
 
Index: src/ammosreader/PPDWReader.py
===================================================================
--- src/ammosreader/PPDWReader.py	(revision bfab5ea359bbc1630806a8538ad1f6c9e40e1b14)
+++ src/ammosreader/PPDWReader.py	(revision bfab5ea359bbc1630806a8538ad1f6c9e40e1b14)
@@ -0,0 +1,24 @@
+from pathlib import Path
+
+from ammosreader.PDW import PDW
+from ammosreader.PPDWContainer import PPDWContainer
+
+class PPDWReader():
+
+    def __init__(self, file_name):
+
+        self.file = Path(file_name)
+        assert self.file.is_file()
+        self.container = PPDWContainer(self.file.stem)
+
+    def read_all_frames_left(self):
+        with self.file.open() as f:
+            while True:
+                current_bytes = f.read(32)
+                if current_bytes == '':
+                    print('End of file detected')
+                    break
+                if len(current_bytes) != 32:
+                    print('Can not read all 32 bytes of next PDW')
+                    break
+                self.container.add(PDW.from_bytes(current_bytes))
