Index: sample_scripts/import_signal.py
===================================================================
--- sample_scripts/import_signal.py	(revision bfab5ea359bbc1630806a8538ad1f6c9e40e1b14)
+++ sample_scripts/import_signal.py	(revision bfab5ea359bbc1630806a8538ad1f6c9e40e1b14)
@@ -0,0 +1,60 @@
+import sys
+import re
+import sqlite3
+import argparse
+from pathlib import Path
+from ammosreader.AmmosIFReader import AmmosIFReader
+from ammosreader.PDW import PDW
+
+parser = argparse.ArgumentParser()
+parser.add_argument('-s', '--source', required=True, help='specify source for given signal')
+parser.add_argument('-i', '--input-dir', required=True, help='specify source directory')
+parser.add_argument('-o', '--output-file', required=True, help='specify sqlite3 database file')
+parser.add_argument('-n', '--signal-number', required=True, help='specify number for signal')
+parser.add_argument('-c', '--code', required=True, help='specify code for signal')
+
+args = parser.parse_args()
+
+code = args.code.upper()
+signal_number = args.signal_number
+input_dir = Path(args.input_dir)
+sqlite3_file = Path(args.output_file)
+
+if not re.match('[A-Z][0-9]{3}[A-Z]', code):
+    print("ELINT-Code incorrect")
+    sys.exit(1)
+
+if not re.match('[0-9]{4}', signal_number):
+    print("Signal number incorrect")
+    sys.exit(1)
+
+if not input_dir.is_dir():
+    print("Input dir invalid")
+    sys.exit(1)
+
+dir_name = input_dir.name
+
+files_inside = [each for each in (input_dir.iterdir()) if (each.suffix in ['.idx', '.iqdw', '.ppdw'] and each.stem == dir_name)]
+
+if len(files_inside) != 3:
+    print(".idx, .iqdw or .ppdw file missing in", input_dir)
+    sys.exit(1)
+
+iqdw_file = (input_dir / input_dir.stem).with_suffix('.iqdw')
+ppdw_file = (input_dir / input_dir.stem).with_suffix('.ppdw')
+idx_file = (input_dir / input_dir.stem).with_suffix('.idx')
+
+#if not sqlite3_file.is_file():
+#    print("Sqlite3 database file not found at", sqlite3_file)
+#    sys.exit(1)
+
+try:
+    connection = sqlite3.connect(str(sqlite3_file))
+    cursor = connection.cursor()
+except Exception:
+    print("Can not connect to database file", str(sqlite3_file))
+    # sys.exit(1)
+
+ammos_reader = AmmosIFReader(str(iqdw_file))
+ammos_reader.read_all_frames_left()
+print(ammos_reader.container)
Index: src/ammosreader/PDW.py
===================================================================
--- src/ammosreader/PDW.py	(revision d954282e509f18bea667a5034aef712785699d86)
+++ 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 d954282e509f18bea667a5034aef712785699d86)
+++ 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))
