Index: ammosreader/AmmosIFDataBlockHeader.py
===================================================================
--- ammosreader/AmmosIFDataBlockHeader.py	(revision 4455f2b1cd2b62171b02393330cb66acc4474f29)
+++ ammosreader/AmmosIFDataBlockHeader.py	(revision 2a9faed4b0de06c7b4133ed6767d69e61138b9d7)
@@ -12,9 +12,10 @@
         assert len(bytes) == cls.HEADER_SIZE
         elements = struct.unpack('<ccH', bytes)
-        header = cls(bytes)
-        header.invalidity = ((elements[0] & 1) == 1)
-        header.blanking = ((elements[0] & 2) == 1)
-        header.user_data = ((elements[0] & 252))
-        header.reserved = elements[1]
+        header = cls()
+        first_entry = int.from_bytes(elements[0], byteorder='big')
+        header.invalidity = ((first_entry & 1) == 1)
+        header.blanking = ((first_entry & 2) == 1)
+        header.user_data = ((first_entry & 252))
+        header.reserved = int.from_bytes(elements[1], byteorder='big')
         header.reciprocal_gain = elements[2]
         return header
@@ -66,5 +67,5 @@
 
     @reciprocal_gain.setter
-    def reciprocal_setter(self, a_gain_value):
+    def reciprocal_gain(self, a_gain_value):
         assert 0 <= a_gain_value < pow(2, 16)
         self.__reciprocal_gain = a_gain_value
Index: ammosreader/AmmosIFDataBody.py
===================================================================
--- ammosreader/AmmosIFDataBody.py	(revision 4455f2b1cd2b62171b02393330cb66acc4474f29)
+++ ammosreader/AmmosIFDataBody.py	(revision 2a9faed4b0de06c7b4133ed6767d69e61138b9d7)
@@ -22,3 +22,3 @@
     @property
     def data(self):
-        b"".join([each.data for each in self.data_blocks])
+        return b"".join([each.data for each in self.data_blocks])
Index: ammosreader/AmmosIFReader.py
===================================================================
--- ammosreader/AmmosIFReader.py	(revision 4455f2b1cd2b62171b02393330cb66acc4474f29)
+++ ammosreader/AmmosIFReader.py	(revision 2a9faed4b0de06c7b4133ed6767d69e61138b9d7)
@@ -2,4 +2,5 @@
 import logging
 
+from ammosreader.AbstractAmmosReader import AbstractAmmosReader
 from ammosreader.AmmosGlobalFrameBody import AmmosGlobalFrameBody
 from ammosreader.AmmosIFDataHeader import AmmosIFDataHeader
@@ -10,9 +11,9 @@
 
 
-class AmmosIFReader():
+class AmmosIFReader(AbstractAmmosReader):
     """I read the IF data embedded in an R&S AMMOS recording."""
 
     def __init__(self, file_name):
-        super.__init__(file_name)
+        super().__init__(file_name)
 
     def read_next_global_frame_body_data_header(self):
@@ -94,9 +95,12 @@
             return None
 
-        if_data_body = self.read_next_if_data_blocks(if_data_header.block_count, if_data_header.block_length)
+        if_data_body = self.read_next_if_data_body(if_data_header.block_count, if_data_header.block_length)
 
         if if_data_body is None:
-            # print("Data body missing")
+            logging.debug("Data body missing")
             return None
 
         return AmmosGlobalFrameBody(if_data_header, if_data_body)
+
+    def data(self):
+        return b"".join([each.global_frame_body.data_body.data for each in self.container.global_frames])
Index: sample_scripts/iqdw_reader.py
===================================================================
--- sample_scripts/iqdw_reader.py	(revision 4455f2b1cd2b62171b02393330cb66acc4474f29)
+++ sample_scripts/iqdw_reader.py	(revision 2a9faed4b0de06c7b4133ed6767d69e61138b9d7)
@@ -19,6 +19,3 @@
 
     dat_file.read_all_frames_left()
-    print(dat_file.container.size())
-
-#    for each in dat_file.container.global_frames:
-#        print(each)
+    print(len(dat_file.data()))
