Index: doc/ammosreader/AbstractAmmosReader.html
===================================================================
--- doc/ammosreader/AbstractAmmosReader.html	(revision 04097cdb708531c6549b286c360cd998d5deb618)
+++ doc/ammosreader/AbstractAmmosReader.html	(revision 7752d1f99e91b74a1fdc11cfd15ae6166803378e)
@@ -37,5 +37,5 @@
 from ammosreader.AmmosConstants import FrameType
 from ammosreader import logger
-from ammosreader import logger
+
 
 class AbstractAmmosReader(ABC):
@@ -114,11 +114,11 @@
         header_size = AmmosGlobalFrameHeader.HEADER_SIZE
 
-        bytes = self.ammos_file.read(header_size)
+        in_bytes = self.ammos_file.read(header_size)
         logger.info(&#34;Reading next global frame header&#34;)
-        if ((not bytes) or (len(bytes) &lt; header_size)):
+        if ((not in_bytes) or (len(in_bytes) &lt; header_size)):
             logger.debug(&#34;Can not read all %s bytes of global frame header&#34;, header_size)
             return None
 
-        current_global_frame_header = AmmosGlobalFrameHeader.from_bytes(bytes)
+        current_global_frame_header = AmmosGlobalFrameHeader.from_bytes(in_bytes)
 
         if current_global_frame_header is None:
@@ -286,11 +286,11 @@
         header_size = AmmosGlobalFrameHeader.HEADER_SIZE
 
-        bytes = self.ammos_file.read(header_size)
+        in_bytes = self.ammos_file.read(header_size)
         logger.info(&#34;Reading next global frame header&#34;)
-        if ((not bytes) or (len(bytes) &lt; header_size)):
+        if ((not in_bytes) or (len(in_bytes) &lt; header_size)):
             logger.debug(&#34;Can not read all %s bytes of global frame header&#34;, header_size)
             return None
 
-        current_global_frame_header = AmmosGlobalFrameHeader.from_bytes(bytes)
+        current_global_frame_header = AmmosGlobalFrameHeader.from_bytes(in_bytes)
 
         if current_global_frame_header is None:
@@ -507,11 +507,11 @@
     header_size = AmmosGlobalFrameHeader.HEADER_SIZE
 
-    bytes = self.ammos_file.read(header_size)
+    in_bytes = self.ammos_file.read(header_size)
     logger.info(&#34;Reading next global frame header&#34;)
-    if ((not bytes) or (len(bytes) &lt; header_size)):
+    if ((not in_bytes) or (len(in_bytes) &lt; header_size)):
         logger.debug(&#34;Can not read all %s bytes of global frame header&#34;, header_size)
         return None
 
-    current_global_frame_header = AmmosGlobalFrameHeader.from_bytes(bytes)
+    current_global_frame_header = AmmosGlobalFrameHeader.from_bytes(in_bytes)
 
     if current_global_frame_header is None:
Index: doc/ammosreader/AmmosAudioDataHeader.html
===================================================================
--- doc/ammosreader/AmmosAudioDataHeader.html	(revision 04097cdb708531c6549b286c360cd998d5deb618)
+++ doc/ammosreader/AmmosAudioDataHeader.html	(revision 7752d1f99e91b74a1fdc11cfd15ae6166803378e)
@@ -40,8 +40,8 @@
 
     @classmethod
-    def from_bytes(cls, bytes):
+    def from_bytes(cls, in_bytes):
         &#34;&#34;&#34;I return an AMMOS data header from given bytes.&#34;&#34;&#34;
-        assert len(bytes) == cls.HEADER_SIZE
-        elements = struct.unpack(&#39;&lt;IIQIIIII&#39;, bytes)
+        assert len(in_bytes) == cls.HEADER_SIZE
+        elements = struct.unpack(&#39;&lt;IIQIIIII&#39;, in_bytes)
         sample_rate = elements[0]
         status = elements[1]
@@ -106,8 +106,8 @@
 
     @classmethod
-    def from_bytes(cls, bytes):
+    def from_bytes(cls, in_bytes):
         &#34;&#34;&#34;I return an AMMOS data header from given bytes.&#34;&#34;&#34;
-        assert len(bytes) == cls.HEADER_SIZE
-        elements = struct.unpack(&#39;&lt;IIQIIIII&#39;, bytes)
+        assert len(in_bytes) == cls.HEADER_SIZE
+        elements = struct.unpack(&#39;&lt;IIQIIIII&#39;, in_bytes)
         sample_rate = elements[0]
         status = elements[1]
@@ -155,5 +155,5 @@
 <dl>
 <dt id="ammosreader.AmmosAudioDataHeader.AmmosAudioDataHeader.from_bytes"><code class="name flex">
-<span>def <span class="ident">from_bytes</span></span>(<span>bytes)</span>
+<span>def <span class="ident">from_bytes</span></span>(<span>in_bytes)</span>
 </code></dt>
 <dd>
@@ -164,8 +164,8 @@
 </summary>
 <pre><code class="python">@classmethod
-def from_bytes(cls, bytes):
+def from_bytes(cls, in_bytes):
     &#34;&#34;&#34;I return an AMMOS data header from given bytes.&#34;&#34;&#34;
-    assert len(bytes) == cls.HEADER_SIZE
-    elements = struct.unpack(&#39;&lt;IIQIIIII&#39;, bytes)
+    assert len(in_bytes) == cls.HEADER_SIZE
+    elements = struct.unpack(&#39;&lt;IIQIIIII&#39;, in_bytes)
     sample_rate = elements[0]
     status = elements[1]
Index: doc/ammosreader/AmmosAudioReader.html
===================================================================
--- doc/ammosreader/AmmosAudioReader.html	(revision 04097cdb708531c6549b286c360cd998d5deb618)
+++ doc/ammosreader/AmmosAudioReader.html	(revision 7752d1f99e91b74a1fdc11cfd15ae6166803378e)
@@ -37,15 +37,7 @@
 from ammosreader import logger
 
+
 class AmmosAudioReader(AbstractAmmosReader):
     &#34;&#34;&#34;I read the audio data embedded in an R&amp;S AMMOS recording.&#34;&#34;&#34;
-
-    def __init__(self, file_name):
-        &#34;&#34;&#34;
-        I return an instance of AmmosAudioReader initialized with a given file name.
-
-        :param file_name: the file to read from
-        :type file_name: str
-        &#34;&#34;&#34;
-        super().__init__(file_name)
 
     def read_next_global_frame_body_data_header(self):
@@ -60,11 +52,11 @@
         header_size = AmmosAudioDataHeader.HEADER_SIZE
 
-        bytes = self.ammos_file.read(header_size)
+        in_bytes = self.ammos_file.read(header_size)
 
         logger.info(&#34;\nReading global frame body standard data header\n&#34;)
-        if ((not bytes) or (len(bytes) &lt; header_size)):
+        if ((not in_bytes) or (len(in_bytes) &lt; header_size)):
             logger.debug(&#34;Can not read all %s bytes of global frame body data header&#34;, header_size)
             return None
-        return AmmosAudioDataHeader.from_bytes(bytes)
+        return AmmosAudioDataHeader.from_bytes(in_bytes)
 
     def read_next_global_frame_body_extended_data_header(self):
@@ -77,10 +69,10 @@
         header_size = AmmosExtendedAudioDataHeader.HEADER_SIZE
 
-        bytes = self.ammos_file.read(header_size)
-
-        if ((not bytes) or (len(bytes) &lt; header_size)):
+        in_bytes = self.ammos_file.read(header_size)
+
+        if ((not in_bytes) or (len(in_bytes) &lt; header_size)):
             logger.debug(&#34;Can not read all %s bytes of global frame extended data header&#34;, header_size)
             return None
-        return AmmosExtendedAudioDataHeader.from_bytes(bytes)
+        return AmmosExtendedAudioDataHeader.from_bytes(in_bytes)
 
     def read_next_audio_data_body(self, number_of_samples, number_of_channels, sample_size):
@@ -150,5 +142,6 @@
         :rtype: bytes
         &#34;&#34;&#34;
-        return b&#34;&#34;.join([each.global_frame_body.data_body.pcm_for_channel(a_channel) for each in self.container.global_frames])</code></pre>
+        return (b&#34;&#34;.join([each.global_frame_body.data_body.pcm_for_channel(a_channel)
+                          for each in self.container.global_frames]))</code></pre>
 </details>
 </section>
@@ -168,6 +161,7 @@
 <dd>
 <div class="desc"><p>I read the audio data embedded in an R&amp;S AMMOS recording.</p>
-<p>I return an instance of AmmosAudioReader initialized with a given file name.</p>
-<p>:param file_name: the file to read from
+<p>I am the standard constructor for Ammos Readers.</p>
+<p>Additional information about the file can be added as key/value pairs in tags</p>
+<p>:param file_name: The file to read Ammos data from
 :type file_name: str</p></div>
 <details class="source">
@@ -177,13 +171,4 @@
 <pre><code class="python">class AmmosAudioReader(AbstractAmmosReader):
     &#34;&#34;&#34;I read the audio data embedded in an R&amp;S AMMOS recording.&#34;&#34;&#34;
-
-    def __init__(self, file_name):
-        &#34;&#34;&#34;
-        I return an instance of AmmosAudioReader initialized with a given file name.
-
-        :param file_name: the file to read from
-        :type file_name: str
-        &#34;&#34;&#34;
-        super().__init__(file_name)
 
     def read_next_global_frame_body_data_header(self):
@@ -198,11 +183,11 @@
         header_size = AmmosAudioDataHeader.HEADER_SIZE
 
-        bytes = self.ammos_file.read(header_size)
+        in_bytes = self.ammos_file.read(header_size)
 
         logger.info(&#34;\nReading global frame body standard data header\n&#34;)
-        if ((not bytes) or (len(bytes) &lt; header_size)):
+        if ((not in_bytes) or (len(in_bytes) &lt; header_size)):
             logger.debug(&#34;Can not read all %s bytes of global frame body data header&#34;, header_size)
             return None
-        return AmmosAudioDataHeader.from_bytes(bytes)
+        return AmmosAudioDataHeader.from_bytes(in_bytes)
 
     def read_next_global_frame_body_extended_data_header(self):
@@ -215,10 +200,10 @@
         header_size = AmmosExtendedAudioDataHeader.HEADER_SIZE
 
-        bytes = self.ammos_file.read(header_size)
-
-        if ((not bytes) or (len(bytes) &lt; header_size)):
+        in_bytes = self.ammos_file.read(header_size)
+
+        if ((not in_bytes) or (len(in_bytes) &lt; header_size)):
             logger.debug(&#34;Can not read all %s bytes of global frame extended data header&#34;, header_size)
             return None
-        return AmmosExtendedAudioDataHeader.from_bytes(bytes)
+        return AmmosExtendedAudioDataHeader.from_bytes(in_bytes)
 
     def read_next_audio_data_body(self, number_of_samples, number_of_channels, sample_size):
@@ -288,5 +273,6 @@
         :rtype: bytes
         &#34;&#34;&#34;
-        return b&#34;&#34;.join([each.global_frame_body.data_body.pcm_for_channel(a_channel) for each in self.container.global_frames])</code></pre>
+        return (b&#34;&#34;.join([each.global_frame_body.data_body.pcm_for_channel(a_channel)
+                          for each in self.container.global_frames]))</code></pre>
 </details>
 <h3>Ancestors</h3>
@@ -318,5 +304,6 @@
     :rtype: bytes
     &#34;&#34;&#34;
-    return b&#34;&#34;.join([each.global_frame_body.data_body.pcm_for_channel(a_channel) for each in self.container.global_frames])</code></pre>
+    return (b&#34;&#34;.join([each.global_frame_body.data_body.pcm_for_channel(a_channel)
+                      for each in self.container.global_frames]))</code></pre>
 </details>
 </dd>
@@ -432,11 +419,11 @@
     header_size = AmmosAudioDataHeader.HEADER_SIZE
 
-    bytes = self.ammos_file.read(header_size)
+    in_bytes = self.ammos_file.read(header_size)
 
     logger.info(&#34;\nReading global frame body standard data header\n&#34;)
-    if ((not bytes) or (len(bytes) &lt; header_size)):
+    if ((not in_bytes) or (len(in_bytes) &lt; header_size)):
         logger.debug(&#34;Can not read all %s bytes of global frame body data header&#34;, header_size)
         return None
-    return AmmosAudioDataHeader.from_bytes(bytes)</code></pre>
+    return AmmosAudioDataHeader.from_bytes(in_bytes)</code></pre>
 </details>
 </dd>
@@ -461,10 +448,10 @@
     header_size = AmmosExtendedAudioDataHeader.HEADER_SIZE
 
-    bytes = self.ammos_file.read(header_size)
-
-    if ((not bytes) or (len(bytes) &lt; header_size)):
+    in_bytes = self.ammos_file.read(header_size)
+
+    if ((not in_bytes) or (len(in_bytes) &lt; header_size)):
         logger.debug(&#34;Can not read all %s bytes of global frame extended data header&#34;, header_size)
         return None
-    return AmmosExtendedAudioDataHeader.from_bytes(bytes)</code></pre>
+    return AmmosExtendedAudioDataHeader.from_bytes(in_bytes)</code></pre>
 </details>
 </dd>
Index: doc/ammosreader/AmmosAudioSocketReader.html
===================================================================
--- doc/ammosreader/AmmosAudioSocketReader.html	(revision 04097cdb708531c6549b286c360cd998d5deb618)
+++ doc/ammosreader/AmmosAudioSocketReader.html	(revision 7752d1f99e91b74a1fdc11cfd15ae6166803378e)
@@ -30,5 +30,5 @@
 <pre><code class="python">&#34;&#34;&#34;I read a Ammos datastream from a socket.&#34;&#34;&#34;
 
-import select
+# import select
 import socket
 from collections import deque
@@ -37,8 +37,12 @@
 from ammosreader.AmmosExtendedAudioDataHeader import AmmosExtendedAudioDataHeader
 from ammosreader.AmmosGlobalFrameHeader import AmmosGlobalFrameHeader
+from ammosreader.AmmosConstants import AmmosAudioDemodType
 from ammosreader import logger
 
+
 class AmmosAudioSocketReader:
-    def __init__(self, socket:socket.socket):
+    &#34;&#34;&#34;I read Ammos Audio data from a socket&#34;&#34;&#34;
+
+    def __init__(self, in_socket: socket.socket):
         &#34;&#34;&#34;
         Initializes the AmmosAudioSocketReader
@@ -48,9 +52,9 @@
         &#34;&#34;&#34;
 
-        #buffer for reading socket bytewise und check for the magic word
+        # buffer for reading socket bytewise und check for the magic word
         self.__magic_word_buffer = deque(maxlen=4)
 
-        #input socket to read from
-        self.__socket = socket
+        # input socket to read from
+        self.__socket = in_socket
 
     def __get_next_data(self, byte_count: int) -&gt; bytearray:
@@ -69,7 +73,8 @@
 
         byte_array = []
-        
+
         while len(b&#39;&#39;.join(byte_array)) &lt; byte_count:
-            logger.info(f&#34;Remaining Bytes: {byte_count - len(b&#39;&#39;.join(byte_array))}&#34;)
+            logger.info(&#34;Remaining Bytes: %s&#34;, byte_count - len(b&#39;&#39;.join(byte_array)))
+            # logger.info(f&#34;Remaining Bytes: {byte_count - len(b&#39;&#39;.join(byte_array))}&#34;)
             self.__socket.settimeout(5)
             new_bytes = self.__socket.recv(byte_count - len(b&#39;&#39;.join(byte_array)), socket.MSG_WAITALL)
@@ -77,6 +82,6 @@
             if not new_bytes:
                 raise TimeoutError(&#34;Socket timed out while reading data&#34;)
-
-            logger.info(f&#34;Got {len(new_bytes)} bytes of {byte_count - len(b&#39;&#39;.join(byte_array))} ramining&#34;)
+            logger.info(&#34;Got %s bytes of %s remaining&#34;, len(new_bytes), byte_count - len(b&#39;&#39;.join(byte_array)))
+            # logger.info(f&#34;Got {len(new_bytes)} bytes of {byte_count - len(b&#39;&#39;.join(byte_array))} remaining&#34;)
 
             byte_array.append(new_bytes)
@@ -84,5 +89,5 @@
         return b&#39;&#39;.join(byte_array)
 
-    def __audio_data_body_to_numpy(self, audio_data_body:bytearray) -&gt; np.ndarray:
+    def __audio_data_body_to_numpy(self, audio_data_body: bytearray) -&gt; np.ndarray:
         &#34;&#34;&#34;
         converts the audio data body to a numpy array
@@ -101,5 +106,5 @@
 
         Raises:
-            TimeoutError: Raisees TimeoutError if the socket does not serve data anymore
+            TimeoutError: Raises TimeoutError if the socket does not serve data anymore
 
         Returns:
@@ -113,7 +118,7 @@
         # raise Exception if socket does not return anything
         if len(new_byte) &lt; 1:
-            raise TimeoutError      
-
-        #read loop
+            raise TimeoutError
+
+        # read loop
         while new_byte:
             #
@@ -121,44 +126,52 @@
             byte_array = b&#39;&#39;.join(self.__magic_word_buffer)
 
-            if byte_array.hex() == &#39;726574fb&#39;:
-                #print(byte_array.hex())
+            if byte_array.hex() == AmmosGlobalFrameHeader.MAGIC_WORD:
+                # print(byte_array.hex())
 
                 ammos_global_header_buffer = list(self.__magic_word_buffer)
                 ammos_global_header_buffer.append(self.__get_next_data(20))
-                #while len(b&#39;&#39;.join(ammos_global_header_buffer)) &lt; 24:
+                # while len(b&#39;&#39;.join(ammos_global_header_buffer)) &lt; 24:
                 #    ammos_global_header_buffer.append(self.__socket.recv(24 - len(b&#39;&#39;.join(ammos_global_header_buffer))))
-                    
+
                 ammos_global_header = AmmosGlobalFrameHeader.from_bytes(b&#39;&#39;.join(ammos_global_header_buffer))
                 logger.info(ammos_global_header)
 
-                if ammos_global_header.data_header_length == 44 and ammos_global_header.frame_type == 256:
-                    byte_array_header = self.__get_next_data(44)
-                    #while len(b&#39;&#39;.join(byte_array_header)) &lt; 44:
+                if (ammos_global_header.data_header_length == AmmosExtendedAudioDataHeader.HEADER_SIZE and ammos_global_header.frame_type == AmmosAudioDemodType.DIGITAL):
+
+                    byte_array_header = self.__get_next_data(AmmosExtendedAudioDataHeader.HEADER_SIZE)
+                    # while len(b&#39;&#39;.join(byte_array_header)) &lt; 44:
                     #    byte_array_header.append(self.__socket.recv(44 - len(b&#39;&#39;.join(byte_array_header))))
 
                     ammos_extended_audio_data_header = AmmosExtendedAudioDataHeader.from_bytes(byte_array_header)
-                    logger.info(ammos_extended_audio_data_header.number_of_samples, ammos_extended_audio_data_header.number_of_channels, ammos_extended_audio_data_header.sample_size)
-                    audio_body = self.__get_next_data(ammos_extended_audio_data_header.number_of_samples* 
-                                                      ammos_extended_audio_data_header.number_of_channels* 
+                    logger.debug(str(ammos_extended_audio_data_header.number_of_samples or &#39;&#39;),
+                                 str(ammos_extended_audio_data_header.number_of_channels or &#39;&#39;),
+                                 str(ammos_extended_audio_data_header.sample_size or &#39;&#39;))
+
+                    audio_body = self.__get_next_data(ammos_extended_audio_data_header.number_of_samples *
+                                                      ammos_extended_audio_data_header.number_of_channels *
                                                       ammos_extended_audio_data_header.sample_size)
 
                     audio_array = self.__audio_data_body_to_numpy(audio_body)
-                    logger.info(len(audio_array), len(audio_array)/ammos_extended_audio_data_header.sample_rate)
+                    # print(&#34;44,256&#34;, len(audio_array), len(audio_array)/ammos_extended_audio_data_header.sample_rate)
+                    logger.debug(&#34;%s, %s&#34;, len(audio_array), len(audio_array) / ammos_extended_audio_data_header.sample_rate)
 
                     return [audio_array, ammos_extended_audio_data_header.sample_rate]
 
-                elif ammos_global_header.data_header_length == 36 and ammos_global_header.frame_type == 256:
-                    byte_array_header = self.__get_next_data(36)
-                    #while len(b&#39;&#39;.join(byte_array_header)) &lt; 36:
+                elif (ammos_global_header.data_header_length == AmmosAudioDataHeader.HEADER_SIZE and ammos_global_header.frame_type == AmmosAudioDemodType.DIGITAL):
+                    byte_array_header = self.__get_next_data(AmmosAudioDataHeader.HEADER_SIZE)
+                    # while len(b&#39;&#39;.join(byte_array_header)) &lt; 36:
                     #    byte_array_header.append(self.__socket.recv(36 - len(b&#39;&#39;.join(byte_array_header))))
 
                     ammos_audio_data_header = AmmosAudioDataHeader.from_bytes(byte_array_header)
-                    logger.info(ammos_audio_data_header.number_of_samples, ammos_audio_data_header.number_of_channels, ammos_audio_data_header.sample_size)
-                    audio_body = self.__get_next_data(ammos_extended_audio_data_header.number_of_samples* 
-                                                      ammos_extended_audio_data_header.number_of_channels* 
+                    logger.debug(str(ammos_audio_data_header.number_of_samples or &#39;&#39;),
+                                 str(ammos_audio_data_header.number_of_channels or &#39;&#39;),
+                                 str(ammos_audio_data_header.sample_size or &#39;&#39;))
+
+                    audio_body = self.__get_next_data(ammos_extended_audio_data_header.number_of_samples *
+                                                      ammos_extended_audio_data_header.number_of_channels *
                                                       ammos_extended_audio_data_header.sample_size)
 
                     audio_array = self.__audio_data_body_to_numpy(audio_body)
-                    logger.info(len(audio_array), len(audio_array)/ammos_audio_data_header.sample_rate)
+                    logger.debug(&#34;%s, %s&#34;, len(audio_array), len(audio_array)/ammos_audio_data_header.sample_rate)
 
                     return [audio_array, ammos_audio_data_header.sample_rate]
@@ -170,5 +183,5 @@
             # raise Exception if socket does not return anything
             if len(new_byte) &lt; 1:
-                raise TimeoutError   
+                raise TimeoutError
 
         return None</code></pre>
@@ -186,8 +199,9 @@
 <dt id="ammosreader.AmmosAudioSocketReader.AmmosAudioSocketReader"><code class="flex name class">
 <span>class <span class="ident">AmmosAudioSocketReader</span></span>
-<span>(</span><span>socket: socket.socket)</span>
+<span>(</span><span>in_socket: socket.socket)</span>
 </code></dt>
 <dd>
-<div class="desc"><p>Initializes the AmmosAudioSocketReader</p>
+<div class="desc"><p>I read Ammos Audio data from a socket</p>
+<p>Initializes the AmmosAudioSocketReader</p>
 <h2 id="args">Args</h2>
 <dl>
@@ -200,5 +214,7 @@
 </summary>
 <pre><code class="python">class AmmosAudioSocketReader:
-    def __init__(self, socket:socket.socket):
+    &#34;&#34;&#34;I read Ammos Audio data from a socket&#34;&#34;&#34;
+
+    def __init__(self, in_socket: socket.socket):
         &#34;&#34;&#34;
         Initializes the AmmosAudioSocketReader
@@ -208,9 +224,9 @@
         &#34;&#34;&#34;
 
-        #buffer for reading socket bytewise und check for the magic word
+        # buffer for reading socket bytewise und check for the magic word
         self.__magic_word_buffer = deque(maxlen=4)
 
-        #input socket to read from
-        self.__socket = socket
+        # input socket to read from
+        self.__socket = in_socket
 
     def __get_next_data(self, byte_count: int) -&gt; bytearray:
@@ -229,7 +245,8 @@
 
         byte_array = []
-        
+
         while len(b&#39;&#39;.join(byte_array)) &lt; byte_count:
-            logger.info(f&#34;Remaining Bytes: {byte_count - len(b&#39;&#39;.join(byte_array))}&#34;)
+            logger.info(&#34;Remaining Bytes: %s&#34;, byte_count - len(b&#39;&#39;.join(byte_array)))
+            # logger.info(f&#34;Remaining Bytes: {byte_count - len(b&#39;&#39;.join(byte_array))}&#34;)
             self.__socket.settimeout(5)
             new_bytes = self.__socket.recv(byte_count - len(b&#39;&#39;.join(byte_array)), socket.MSG_WAITALL)
@@ -237,6 +254,6 @@
             if not new_bytes:
                 raise TimeoutError(&#34;Socket timed out while reading data&#34;)
-
-            logger.info(f&#34;Got {len(new_bytes)} bytes of {byte_count - len(b&#39;&#39;.join(byte_array))} ramining&#34;)
+            logger.info(&#34;Got %s bytes of %s remaining&#34;, len(new_bytes), byte_count - len(b&#39;&#39;.join(byte_array)))
+            # logger.info(f&#34;Got {len(new_bytes)} bytes of {byte_count - len(b&#39;&#39;.join(byte_array))} remaining&#34;)
 
             byte_array.append(new_bytes)
@@ -244,5 +261,5 @@
         return b&#39;&#39;.join(byte_array)
 
-    def __audio_data_body_to_numpy(self, audio_data_body:bytearray) -&gt; np.ndarray:
+    def __audio_data_body_to_numpy(self, audio_data_body: bytearray) -&gt; np.ndarray:
         &#34;&#34;&#34;
         converts the audio data body to a numpy array
@@ -261,5 +278,5 @@
 
         Raises:
-            TimeoutError: Raisees TimeoutError if the socket does not serve data anymore
+            TimeoutError: Raises TimeoutError if the socket does not serve data anymore
 
         Returns:
@@ -273,7 +290,7 @@
         # raise Exception if socket does not return anything
         if len(new_byte) &lt; 1:
-            raise TimeoutError      
-
-        #read loop
+            raise TimeoutError
+
+        # read loop
         while new_byte:
             #
@@ -281,44 +298,52 @@
             byte_array = b&#39;&#39;.join(self.__magic_word_buffer)
 
-            if byte_array.hex() == &#39;726574fb&#39;:
-                #print(byte_array.hex())
+            if byte_array.hex() == AmmosGlobalFrameHeader.MAGIC_WORD:
+                # print(byte_array.hex())
 
                 ammos_global_header_buffer = list(self.__magic_word_buffer)
                 ammos_global_header_buffer.append(self.__get_next_data(20))
-                #while len(b&#39;&#39;.join(ammos_global_header_buffer)) &lt; 24:
+                # while len(b&#39;&#39;.join(ammos_global_header_buffer)) &lt; 24:
                 #    ammos_global_header_buffer.append(self.__socket.recv(24 - len(b&#39;&#39;.join(ammos_global_header_buffer))))
-                    
+
                 ammos_global_header = AmmosGlobalFrameHeader.from_bytes(b&#39;&#39;.join(ammos_global_header_buffer))
                 logger.info(ammos_global_header)
 
-                if ammos_global_header.data_header_length == 44 and ammos_global_header.frame_type == 256:
-                    byte_array_header = self.__get_next_data(44)
-                    #while len(b&#39;&#39;.join(byte_array_header)) &lt; 44:
+                if (ammos_global_header.data_header_length == AmmosExtendedAudioDataHeader.HEADER_SIZE and ammos_global_header.frame_type == AmmosAudioDemodType.DIGITAL):
+
+                    byte_array_header = self.__get_next_data(AmmosExtendedAudioDataHeader.HEADER_SIZE)
+                    # while len(b&#39;&#39;.join(byte_array_header)) &lt; 44:
                     #    byte_array_header.append(self.__socket.recv(44 - len(b&#39;&#39;.join(byte_array_header))))
 
                     ammos_extended_audio_data_header = AmmosExtendedAudioDataHeader.from_bytes(byte_array_header)
-                    logger.info(ammos_extended_audio_data_header.number_of_samples, ammos_extended_audio_data_header.number_of_channels, ammos_extended_audio_data_header.sample_size)
-                    audio_body = self.__get_next_data(ammos_extended_audio_data_header.number_of_samples* 
-                                                      ammos_extended_audio_data_header.number_of_channels* 
+                    logger.debug(str(ammos_extended_audio_data_header.number_of_samples or &#39;&#39;),
+                                 str(ammos_extended_audio_data_header.number_of_channels or &#39;&#39;),
+                                 str(ammos_extended_audio_data_header.sample_size or &#39;&#39;))
+
+                    audio_body = self.__get_next_data(ammos_extended_audio_data_header.number_of_samples *
+                                                      ammos_extended_audio_data_header.number_of_channels *
                                                       ammos_extended_audio_data_header.sample_size)
 
                     audio_array = self.__audio_data_body_to_numpy(audio_body)
-                    logger.info(len(audio_array), len(audio_array)/ammos_extended_audio_data_header.sample_rate)
+                    # print(&#34;44,256&#34;, len(audio_array), len(audio_array)/ammos_extended_audio_data_header.sample_rate)
+                    logger.debug(&#34;%s, %s&#34;, len(audio_array), len(audio_array) / ammos_extended_audio_data_header.sample_rate)
 
                     return [audio_array, ammos_extended_audio_data_header.sample_rate]
 
-                elif ammos_global_header.data_header_length == 36 and ammos_global_header.frame_type == 256:
-                    byte_array_header = self.__get_next_data(36)
-                    #while len(b&#39;&#39;.join(byte_array_header)) &lt; 36:
+                elif (ammos_global_header.data_header_length == AmmosAudioDataHeader.HEADER_SIZE and ammos_global_header.frame_type == AmmosAudioDemodType.DIGITAL):
+                    byte_array_header = self.__get_next_data(AmmosAudioDataHeader.HEADER_SIZE)
+                    # while len(b&#39;&#39;.join(byte_array_header)) &lt; 36:
                     #    byte_array_header.append(self.__socket.recv(36 - len(b&#39;&#39;.join(byte_array_header))))
 
                     ammos_audio_data_header = AmmosAudioDataHeader.from_bytes(byte_array_header)
-                    logger.info(ammos_audio_data_header.number_of_samples, ammos_audio_data_header.number_of_channels, ammos_audio_data_header.sample_size)
-                    audio_body = self.__get_next_data(ammos_extended_audio_data_header.number_of_samples* 
-                                                      ammos_extended_audio_data_header.number_of_channels* 
+                    logger.debug(str(ammos_audio_data_header.number_of_samples or &#39;&#39;),
+                                 str(ammos_audio_data_header.number_of_channels or &#39;&#39;),
+                                 str(ammos_audio_data_header.sample_size or &#39;&#39;))
+
+                    audio_body = self.__get_next_data(ammos_extended_audio_data_header.number_of_samples *
+                                                      ammos_extended_audio_data_header.number_of_channels *
                                                       ammos_extended_audio_data_header.sample_size)
 
                     audio_array = self.__audio_data_body_to_numpy(audio_body)
-                    logger.info(len(audio_array), len(audio_array)/ammos_audio_data_header.sample_rate)
+                    logger.debug(&#34;%s, %s&#34;, len(audio_array), len(audio_array)/ammos_audio_data_header.sample_rate)
 
                     return [audio_array, ammos_audio_data_header.sample_rate]
@@ -330,5 +355,5 @@
             # raise Exception if socket does not return anything
             if len(new_byte) &lt; 1:
-                raise TimeoutError   
+                raise TimeoutError
 
         return None</code></pre>
@@ -344,5 +369,5 @@
 <dl>
 <dt><code>TimeoutError</code></dt>
-<dd>Raisees TimeoutError if the socket does not serve data anymore</dd>
+<dd>Raises TimeoutError if the socket does not serve data anymore</dd>
 </dl>
 <h2 id="returns">Returns</h2>
@@ -359,5 +384,5 @@
 
     Raises:
-        TimeoutError: Raisees TimeoutError if the socket does not serve data anymore
+        TimeoutError: Raises TimeoutError if the socket does not serve data anymore
 
     Returns:
@@ -371,7 +396,7 @@
     # raise Exception if socket does not return anything
     if len(new_byte) &lt; 1:
-        raise TimeoutError      
-
-    #read loop
+        raise TimeoutError
+
+    # read loop
     while new_byte:
         #
@@ -379,44 +404,52 @@
         byte_array = b&#39;&#39;.join(self.__magic_word_buffer)
 
-        if byte_array.hex() == &#39;726574fb&#39;:
-            #print(byte_array.hex())
+        if byte_array.hex() == AmmosGlobalFrameHeader.MAGIC_WORD:
+            # print(byte_array.hex())
 
             ammos_global_header_buffer = list(self.__magic_word_buffer)
             ammos_global_header_buffer.append(self.__get_next_data(20))
-            #while len(b&#39;&#39;.join(ammos_global_header_buffer)) &lt; 24:
+            # while len(b&#39;&#39;.join(ammos_global_header_buffer)) &lt; 24:
             #    ammos_global_header_buffer.append(self.__socket.recv(24 - len(b&#39;&#39;.join(ammos_global_header_buffer))))
-                
+
             ammos_global_header = AmmosGlobalFrameHeader.from_bytes(b&#39;&#39;.join(ammos_global_header_buffer))
             logger.info(ammos_global_header)
 
-            if ammos_global_header.data_header_length == 44 and ammos_global_header.frame_type == 256:
-                byte_array_header = self.__get_next_data(44)
-                #while len(b&#39;&#39;.join(byte_array_header)) &lt; 44:
+            if (ammos_global_header.data_header_length == AmmosExtendedAudioDataHeader.HEADER_SIZE and ammos_global_header.frame_type == AmmosAudioDemodType.DIGITAL):
+
+                byte_array_header = self.__get_next_data(AmmosExtendedAudioDataHeader.HEADER_SIZE)
+                # while len(b&#39;&#39;.join(byte_array_header)) &lt; 44:
                 #    byte_array_header.append(self.__socket.recv(44 - len(b&#39;&#39;.join(byte_array_header))))
 
                 ammos_extended_audio_data_header = AmmosExtendedAudioDataHeader.from_bytes(byte_array_header)
-                logger.info(ammos_extended_audio_data_header.number_of_samples, ammos_extended_audio_data_header.number_of_channels, ammos_extended_audio_data_header.sample_size)
-                audio_body = self.__get_next_data(ammos_extended_audio_data_header.number_of_samples* 
-                                                  ammos_extended_audio_data_header.number_of_channels* 
+                logger.debug(str(ammos_extended_audio_data_header.number_of_samples or &#39;&#39;),
+                             str(ammos_extended_audio_data_header.number_of_channels or &#39;&#39;),
+                             str(ammos_extended_audio_data_header.sample_size or &#39;&#39;))
+
+                audio_body = self.__get_next_data(ammos_extended_audio_data_header.number_of_samples *
+                                                  ammos_extended_audio_data_header.number_of_channels *
                                                   ammos_extended_audio_data_header.sample_size)
 
                 audio_array = self.__audio_data_body_to_numpy(audio_body)
-                logger.info(len(audio_array), len(audio_array)/ammos_extended_audio_data_header.sample_rate)
+                # print(&#34;44,256&#34;, len(audio_array), len(audio_array)/ammos_extended_audio_data_header.sample_rate)
+                logger.debug(&#34;%s, %s&#34;, len(audio_array), len(audio_array) / ammos_extended_audio_data_header.sample_rate)
 
                 return [audio_array, ammos_extended_audio_data_header.sample_rate]
 
-            elif ammos_global_header.data_header_length == 36 and ammos_global_header.frame_type == 256:
-                byte_array_header = self.__get_next_data(36)
-                #while len(b&#39;&#39;.join(byte_array_header)) &lt; 36:
+            elif (ammos_global_header.data_header_length == AmmosAudioDataHeader.HEADER_SIZE and ammos_global_header.frame_type == AmmosAudioDemodType.DIGITAL):
+                byte_array_header = self.__get_next_data(AmmosAudioDataHeader.HEADER_SIZE)
+                # while len(b&#39;&#39;.join(byte_array_header)) &lt; 36:
                 #    byte_array_header.append(self.__socket.recv(36 - len(b&#39;&#39;.join(byte_array_header))))
 
                 ammos_audio_data_header = AmmosAudioDataHeader.from_bytes(byte_array_header)
-                logger.info(ammos_audio_data_header.number_of_samples, ammos_audio_data_header.number_of_channels, ammos_audio_data_header.sample_size)
-                audio_body = self.__get_next_data(ammos_extended_audio_data_header.number_of_samples* 
-                                                  ammos_extended_audio_data_header.number_of_channels* 
+                logger.debug(str(ammos_audio_data_header.number_of_samples or &#39;&#39;),
+                             str(ammos_audio_data_header.number_of_channels or &#39;&#39;),
+                             str(ammos_audio_data_header.sample_size or &#39;&#39;))
+
+                audio_body = self.__get_next_data(ammos_extended_audio_data_header.number_of_samples *
+                                                  ammos_extended_audio_data_header.number_of_channels *
                                                   ammos_extended_audio_data_header.sample_size)
 
                 audio_array = self.__audio_data_body_to_numpy(audio_body)
-                logger.info(len(audio_array), len(audio_array)/ammos_audio_data_header.sample_rate)
+                logger.debug(&#34;%s, %s&#34;, len(audio_array), len(audio_array)/ammos_audio_data_header.sample_rate)
 
                 return [audio_array, ammos_audio_data_header.sample_rate]
@@ -428,5 +461,5 @@
         # raise Exception if socket does not return anything
         if len(new_byte) &lt; 1:
-            raise TimeoutError   
+            raise TimeoutError
 
     return None</code></pre>
Index: doc/ammosreader/AmmosContainer.html
===================================================================
--- doc/ammosreader/AmmosContainer.html	(revision 04097cdb708531c6549b286c360cd998d5deb618)
+++ doc/ammosreader/AmmosContainer.html	(revision 7752d1f99e91b74a1fdc11cfd15ae6166803378e)
@@ -6,5 +6,5 @@
 <meta name="generator" content="pdoc 0.10.0" />
 <title>ammosreader.AmmosContainer API documentation</title>
-<meta name="description" content="I store the content of an R&amp;S Ammos file in a more accessible way." />
+<meta name="description" content="I provide an Ammos container." />
 <link rel="preload stylesheet" as="style" href="https://cdnjs.cloudflare.com/ajax/libs/10up-sanitize.css/11.0.1/sanitize.min.css" integrity="sha256-PK9q560IAAa6WVRRh76LtCaI8pjTJ2z11v0miyNNjrs=" crossorigin>
 <link rel="preload stylesheet" as="style" href="https://cdnjs.cloudflare.com/ajax/libs/10up-sanitize.css/11.0.1/typography.min.css" integrity="sha256-7l/o7C8jubJiy74VsKTidCy1yBkRtiUGbVkYBylBqUg=" crossorigin>
@@ -23,13 +23,14 @@
 </header>
 <section id="section-intro">
-<p>I store the content of an R&amp;S Ammos file in a more accessible way.</p>
-<details class="source">
-<summary>
-<span>Expand source code</span>
-</summary>
-<pre><code class="python">&#34;&#34;&#34;I store the content of an R&amp;S Ammos file in a more accessible way.&#34;&#34;&#34;
+<p>I provide an Ammos container.</p>
+<details class="source">
+<summary>
+<span>Expand source code</span>
+</summary>
+<pre><code class="python">&#34;&#34;&#34;I provide an Ammos container.&#34;&#34;&#34;
+
 
 class AmmosContainer():
-
+    &#34;&#34;&#34;I store the content of an R&amp;S Ammos file in a more accessible way.&#34;&#34;&#34;
     def __init__(self, name, frames):
         self.__name = name
@@ -56,5 +57,6 @@
 
     def size(self):
-        return sum([each.global_frame_header.frame_length for each in self.__global_frames])
+        # return sum([each.global_frame_header.frame_length for each in self.__global_frames])
+        return sum(each.global_frame_header.frame_length for each in self.__global_frames)
 
     def frequencies(self):
@@ -101,5 +103,5 @@
 </code></dt>
 <dd>
-<div class="desc"></div>
+<div class="desc"><p>I store the content of an R&amp;S Ammos file in a more accessible way.</p></div>
 <details class="source">
 <summary>
@@ -107,5 +109,5 @@
 </summary>
 <pre><code class="python">class AmmosContainer():
-
+    &#34;&#34;&#34;I store the content of an R&amp;S Ammos file in a more accessible way.&#34;&#34;&#34;
     def __init__(self, name, frames):
         self.__name = name
@@ -132,5 +134,6 @@
 
     def size(self):
-        return sum([each.global_frame_header.frame_length for each in self.__global_frames])
+        # return sum([each.global_frame_header.frame_length for each in self.__global_frames])
+        return sum(each.global_frame_header.frame_length for each in self.__global_frames)
 
     def frequencies(self):
@@ -293,5 +296,6 @@
 </summary>
 <pre><code class="python">def size(self):
-    return sum([each.global_frame_header.frame_length for each in self.__global_frames])</code></pre>
+    # return sum([each.global_frame_header.frame_length for each in self.__global_frames])
+    return sum(each.global_frame_header.frame_length for each in self.__global_frames)</code></pre>
 </details>
 </dd>
Index: doc/ammosreader/AmmosExtendedAudioDataHeader.html
===================================================================
--- doc/ammosreader/AmmosExtendedAudioDataHeader.html	(revision 04097cdb708531c6549b286c360cd998d5deb618)
+++ doc/ammosreader/AmmosExtendedAudioDataHeader.html	(revision 7752d1f99e91b74a1fdc11cfd15ae6166803378e)
@@ -39,9 +39,9 @@
 
     @classmethod
-    def from_bytes(cls, bytes):
+    def from_bytes(cls, in_bytes):
         &#34;&#34;&#34;I return a new AMMOS extended data header for audio frames built from given bytes.&#34;&#34;&#34;
-        assert len(bytes) == cls.HEADER_SIZE
-        standard_header = AmmosAudioDataHeader.from_bytes(bytes[0:AmmosAudioDataHeader.HEADER_SIZE])
-        extended_header_elements = struct.unpack(&#39;&lt;Q&#39;, bytes[AmmosAudioDataHeader.HEADER_SIZE:])
+        assert len(in_bytes) == cls.HEADER_SIZE
+        standard_header = AmmosAudioDataHeader.from_bytes(in_bytes[0:AmmosAudioDataHeader.HEADER_SIZE])
+        extended_header_elements = struct.unpack(&#39;&lt;Q&#39;, in_bytes[AmmosAudioDataHeader.HEADER_SIZE:])
         timestamp = extended_header_elements[0]
         sample_rate = standard_header.sample_rate
@@ -94,9 +94,9 @@
 
     @classmethod
-    def from_bytes(cls, bytes):
+    def from_bytes(cls, in_bytes):
         &#34;&#34;&#34;I return a new AMMOS extended data header for audio frames built from given bytes.&#34;&#34;&#34;
-        assert len(bytes) == cls.HEADER_SIZE
-        standard_header = AmmosAudioDataHeader.from_bytes(bytes[0:AmmosAudioDataHeader.HEADER_SIZE])
-        extended_header_elements = struct.unpack(&#39;&lt;Q&#39;, bytes[AmmosAudioDataHeader.HEADER_SIZE:])
+        assert len(in_bytes) == cls.HEADER_SIZE
+        standard_header = AmmosAudioDataHeader.from_bytes(in_bytes[0:AmmosAudioDataHeader.HEADER_SIZE])
+        extended_header_elements = struct.unpack(&#39;&lt;Q&#39;, in_bytes[AmmosAudioDataHeader.HEADER_SIZE:])
         timestamp = extended_header_elements[0]
         sample_rate = standard_header.sample_rate
@@ -134,5 +134,5 @@
 <dl>
 <dt id="ammosreader.AmmosExtendedAudioDataHeader.AmmosExtendedAudioDataHeader.from_bytes"><code class="name flex">
-<span>def <span class="ident">from_bytes</span></span>(<span>bytes)</span>
+<span>def <span class="ident">from_bytes</span></span>(<span>in_bytes)</span>
 </code></dt>
 <dd>
@@ -143,9 +143,9 @@
 </summary>
 <pre><code class="python">@classmethod
-def from_bytes(cls, bytes):
+def from_bytes(cls, in_bytes):
     &#34;&#34;&#34;I return a new AMMOS extended data header for audio frames built from given bytes.&#34;&#34;&#34;
-    assert len(bytes) == cls.HEADER_SIZE
-    standard_header = AmmosAudioDataHeader.from_bytes(bytes[0:AmmosAudioDataHeader.HEADER_SIZE])
-    extended_header_elements = struct.unpack(&#39;&lt;Q&#39;, bytes[AmmosAudioDataHeader.HEADER_SIZE:])
+    assert len(in_bytes) == cls.HEADER_SIZE
+    standard_header = AmmosAudioDataHeader.from_bytes(in_bytes[0:AmmosAudioDataHeader.HEADER_SIZE])
+    extended_header_elements = struct.unpack(&#39;&lt;Q&#39;, in_bytes[AmmosAudioDataHeader.HEADER_SIZE:])
     timestamp = extended_header_elements[0]
     sample_rate = standard_header.sample_rate
Index: doc/ammosreader/AmmosExtendedIFDataHeader.html
===================================================================
--- doc/ammosreader/AmmosExtendedIFDataHeader.html	(revision 04097cdb708531c6549b286c360cd998d5deb618)
+++ doc/ammosreader/AmmosExtendedIFDataHeader.html	(revision 7752d1f99e91b74a1fdc11cfd15ae6166803378e)
@@ -38,8 +38,8 @@
 
     @classmethod
-    def from_bytes(cls, bytes):
+    def from_bytes(cls, in_bytes):
         &#34;&#34;&#34;I return an AMMOS extended data header from given bytes.&#34;&#34;&#34;
-        standard_header = AmmosIFDataHeader.from_bytes(bytes[0:AmmosIFDataHeader.HEADER_SIZE])
-        extended_header_elements = struct.unpack(&#39;&lt;QQI&#39;, bytes[AmmosIFDataHeader.HEADER_SIZE:cls.HEADER_SIZE])
+        standard_header = AmmosIFDataHeader.from_bytes(in_bytes[0:AmmosIFDataHeader.HEADER_SIZE])
+        extended_header_elements = struct.unpack(&#39;&lt;QQI&#39;, in_bytes[AmmosIFDataHeader.HEADER_SIZE:cls.HEADER_SIZE])
         block_count = standard_header.block_count
         block_length = standard_header.block_length
@@ -57,5 +57,5 @@
         sample_counter = extended_header_elements[1]
         antenna_correction = extended_header_elements[2]
-        size = len(bytes)
+        size = len(in_bytes)
         return AmmosExtendedIFDataHeader(size, block_count, block_length, timestamp, status, source_id,
                                          source_state, frequency, bandwidth, sample_rate, interpolation,
@@ -126,8 +126,8 @@
 
     @classmethod
-    def from_bytes(cls, bytes):
+    def from_bytes(cls, in_bytes):
         &#34;&#34;&#34;I return an AMMOS extended data header from given bytes.&#34;&#34;&#34;
-        standard_header = AmmosIFDataHeader.from_bytes(bytes[0:AmmosIFDataHeader.HEADER_SIZE])
-        extended_header_elements = struct.unpack(&#39;&lt;QQI&#39;, bytes[AmmosIFDataHeader.HEADER_SIZE:cls.HEADER_SIZE])
+        standard_header = AmmosIFDataHeader.from_bytes(in_bytes[0:AmmosIFDataHeader.HEADER_SIZE])
+        extended_header_elements = struct.unpack(&#39;&lt;QQI&#39;, in_bytes[AmmosIFDataHeader.HEADER_SIZE:cls.HEADER_SIZE])
         block_count = standard_header.block_count
         block_length = standard_header.block_length
@@ -145,5 +145,5 @@
         sample_counter = extended_header_elements[1]
         antenna_correction = extended_header_elements[2]
-        size = len(bytes)
+        size = len(in_bytes)
         return AmmosExtendedIFDataHeader(size, block_count, block_length, timestamp, status, source_id,
                                          source_state, frequency, bandwidth, sample_rate, interpolation,
@@ -197,5 +197,5 @@
 <dl>
 <dt id="ammosreader.AmmosExtendedIFDataHeader.AmmosExtendedIFDataHeader.from_bytes"><code class="name flex">
-<span>def <span class="ident">from_bytes</span></span>(<span>bytes)</span>
+<span>def <span class="ident">from_bytes</span></span>(<span>in_bytes)</span>
 </code></dt>
 <dd>
@@ -206,8 +206,8 @@
 </summary>
 <pre><code class="python">@classmethod
-def from_bytes(cls, bytes):
+def from_bytes(cls, in_bytes):
     &#34;&#34;&#34;I return an AMMOS extended data header from given bytes.&#34;&#34;&#34;
-    standard_header = AmmosIFDataHeader.from_bytes(bytes[0:AmmosIFDataHeader.HEADER_SIZE])
-    extended_header_elements = struct.unpack(&#39;&lt;QQI&#39;, bytes[AmmosIFDataHeader.HEADER_SIZE:cls.HEADER_SIZE])
+    standard_header = AmmosIFDataHeader.from_bytes(in_bytes[0:AmmosIFDataHeader.HEADER_SIZE])
+    extended_header_elements = struct.unpack(&#39;&lt;QQI&#39;, in_bytes[AmmosIFDataHeader.HEADER_SIZE:cls.HEADER_SIZE])
     block_count = standard_header.block_count
     block_length = standard_header.block_length
@@ -225,5 +225,5 @@
     sample_counter = extended_header_elements[1]
     antenna_correction = extended_header_elements[2]
-    size = len(bytes)
+    size = len(in_bytes)
     return AmmosExtendedIFDataHeader(size, block_count, block_length, timestamp, status, source_id,
                                      source_state, frequency, bandwidth, sample_rate, interpolation,
Index: doc/ammosreader/AmmosGlobalFrameHeader.html
===================================================================
--- doc/ammosreader/AmmosGlobalFrameHeader.html	(revision 04097cdb708531c6549b286c360cd998d5deb618)
+++ doc/ammosreader/AmmosGlobalFrameHeader.html	(revision 7752d1f99e91b74a1fdc11cfd15ae6166803378e)
@@ -39,9 +39,9 @@
 
     @classmethod
-    def from_bytes(cls, bytes):
+    def from_bytes(cls, in_bytes):
         &#34;&#34;&#34;I create a new AmmosGlobalFrameHeader from bytes.&#34;&#34;&#34;
-        assert len(bytes) == cls.HEADER_SIZE
-
-        elements = struct.unpack(&#39;&lt;4s4s4s4s4s4s&#39;, bytes)
+        assert len(in_bytes) == cls.HEADER_SIZE
+
+        elements = struct.unpack(&#39;&lt;4s4s4s4s4s4s&#39;, in_bytes)
 
         magic_word = elements[0].hex()
@@ -116,9 +116,9 @@
 
     @classmethod
-    def from_bytes(cls, bytes):
+    def from_bytes(cls, in_bytes):
         &#34;&#34;&#34;I create a new AmmosGlobalFrameHeader from bytes.&#34;&#34;&#34;
-        assert len(bytes) == cls.HEADER_SIZE
-
-        elements = struct.unpack(&#39;&lt;4s4s4s4s4s4s&#39;, bytes)
+        assert len(in_bytes) == cls.HEADER_SIZE
+
+        elements = struct.unpack(&#39;&lt;4s4s4s4s4s4s&#39;, in_bytes)
 
         magic_word = elements[0].hex()
@@ -179,5 +179,5 @@
 <dl>
 <dt id="ammosreader.AmmosGlobalFrameHeader.AmmosGlobalFrameHeader.from_bytes"><code class="name flex">
-<span>def <span class="ident">from_bytes</span></span>(<span>bytes)</span>
+<span>def <span class="ident">from_bytes</span></span>(<span>in_bytes)</span>
 </code></dt>
 <dd>
@@ -188,9 +188,9 @@
 </summary>
 <pre><code class="python">@classmethod
-def from_bytes(cls, bytes):
+def from_bytes(cls, in_bytes):
     &#34;&#34;&#34;I create a new AmmosGlobalFrameHeader from bytes.&#34;&#34;&#34;
-    assert len(bytes) == cls.HEADER_SIZE
-
-    elements = struct.unpack(&#39;&lt;4s4s4s4s4s4s&#39;, bytes)
+    assert len(in_bytes) == cls.HEADER_SIZE
+
+    elements = struct.unpack(&#39;&lt;4s4s4s4s4s4s&#39;, in_bytes)
 
     magic_word = elements[0].hex()
Index: doc/ammosreader/AmmosIFDataBlockHeader.html
===================================================================
--- doc/ammosreader/AmmosIFDataBlockHeader.html	(revision 04097cdb708531c6549b286c360cd998d5deb618)
+++ doc/ammosreader/AmmosIFDataBlockHeader.html	(revision 7752d1f99e91b74a1fdc11cfd15ae6166803378e)
@@ -36,8 +36,8 @@
 
     @classmethod
-    def from_bytes(cls, bytes):
+    def from_bytes(cls, in_bytes):
         &#34;&#34;&#34;I return an AMMOS IF data block header built from bytes.&#34;&#34;&#34;
-        assert len(bytes) == cls.HEADER_SIZE
-        elements = struct.unpack(&#39;&lt;ccH&#39;, bytes)
+        assert len(in_bytes) == cls.HEADER_SIZE
+        elements = struct.unpack(&#39;&lt;ccH&#39;, in_bytes)
         header = cls()
         first_entry = int.from_bytes(elements[0], byteorder=&#39;little&#39;)
@@ -125,8 +125,8 @@
 
     @classmethod
-    def from_bytes(cls, bytes):
+    def from_bytes(cls, in_bytes):
         &#34;&#34;&#34;I return an AMMOS IF data block header built from bytes.&#34;&#34;&#34;
-        assert len(bytes) == cls.HEADER_SIZE
-        elements = struct.unpack(&#39;&lt;ccH&#39;, bytes)
+        assert len(in_bytes) == cls.HEADER_SIZE
+        elements = struct.unpack(&#39;&lt;ccH&#39;, in_bytes)
         header = cls()
         first_entry = int.from_bytes(elements[0], byteorder=&#39;little&#39;)
@@ -198,5 +198,5 @@
 <dl>
 <dt id="ammosreader.AmmosIFDataBlockHeader.AmmosIFDataBlockHeader.from_bytes"><code class="name flex">
-<span>def <span class="ident">from_bytes</span></span>(<span>bytes)</span>
+<span>def <span class="ident">from_bytes</span></span>(<span>in_bytes)</span>
 </code></dt>
 <dd>
@@ -207,8 +207,8 @@
 </summary>
 <pre><code class="python">@classmethod
-def from_bytes(cls, bytes):
+def from_bytes(cls, in_bytes):
     &#34;&#34;&#34;I return an AMMOS IF data block header built from bytes.&#34;&#34;&#34;
-    assert len(bytes) == cls.HEADER_SIZE
-    elements = struct.unpack(&#39;&lt;ccH&#39;, bytes)
+    assert len(in_bytes) == cls.HEADER_SIZE
+    elements = struct.unpack(&#39;&lt;ccH&#39;, in_bytes)
     header = cls()
     first_entry = int.from_bytes(elements[0], byteorder=&#39;little&#39;)
Index: doc/ammosreader/AmmosIFDataHeader.html
===================================================================
--- doc/ammosreader/AmmosIFDataHeader.html	(revision 04097cdb708531c6549b286c360cd998d5deb618)
+++ doc/ammosreader/AmmosIFDataHeader.html	(revision 7752d1f99e91b74a1fdc11cfd15ae6166803378e)
@@ -40,8 +40,8 @@
 
     @classmethod
-    def from_bytes(cls, bytes):
+    def from_bytes(cls, in_bytes):
         &#34;&#34;&#34;I return an AMMOS data header from given bytes.&#34;&#34;&#34;
-        assert len(bytes) == cls.HEADER_SIZE
-        elements = struct.unpack(&#39;&lt;IIQIIIQIIIIi&#39;, bytes)
+        assert len(in_bytes) == cls.HEADER_SIZE
+        elements = struct.unpack(&#39;&lt;IIQIIIQIIIIi&#39;, in_bytes)
         block_count = elements[0]
         block_length = int(elements[1])*4
@@ -77,5 +77,5 @@
         self.voltage_ref = voltage_ref
 
-    def __str_(self):
+    def __str__(self):
         output = (&#34;\nGlobal frame body data header\n&#34; +
                   &#34;-----------------------------\n&#34; +
@@ -115,8 +115,8 @@
 
     @classmethod
-    def from_bytes(cls, bytes):
+    def from_bytes(cls, in_bytes):
         &#34;&#34;&#34;I return an AMMOS data header from given bytes.&#34;&#34;&#34;
-        assert len(bytes) == cls.HEADER_SIZE
-        elements = struct.unpack(&#39;&lt;IIQIIIQIIIIi&#39;, bytes)
+        assert len(in_bytes) == cls.HEADER_SIZE
+        elements = struct.unpack(&#39;&lt;IIQIIIQIIIIi&#39;, in_bytes)
         block_count = elements[0]
         block_length = int(elements[1])*4
@@ -152,5 +152,5 @@
         self.voltage_ref = voltage_ref
 
-    def __str_(self):
+    def __str__(self):
         output = (&#34;\nGlobal frame body data header\n&#34; +
                   &#34;-----------------------------\n&#34; +
@@ -173,5 +173,5 @@
 <dl>
 <dt id="ammosreader.AmmosIFDataHeader.AmmosIFDataHeader.from_bytes"><code class="name flex">
-<span>def <span class="ident">from_bytes</span></span>(<span>bytes)</span>
+<span>def <span class="ident">from_bytes</span></span>(<span>in_bytes)</span>
 </code></dt>
 <dd>
@@ -182,8 +182,8 @@
 </summary>
 <pre><code class="python">@classmethod
-def from_bytes(cls, bytes):
+def from_bytes(cls, in_bytes):
     &#34;&#34;&#34;I return an AMMOS data header from given bytes.&#34;&#34;&#34;
-    assert len(bytes) == cls.HEADER_SIZE
-    elements = struct.unpack(&#39;&lt;IIQIIIQIIIIi&#39;, bytes)
+    assert len(in_bytes) == cls.HEADER_SIZE
+    elements = struct.unpack(&#39;&lt;IIQIIIQIIIIi&#39;, in_bytes)
     block_count = elements[0]
     block_length = int(elements[1])*4
Index: doc/ammosreader/AmmosIFReader.html
===================================================================
--- doc/ammosreader/AmmosIFReader.html	(revision 04097cdb708531c6549b286c360cd998d5deb618)
+++ doc/ammosreader/AmmosIFReader.html	(revision 7752d1f99e91b74a1fdc11cfd15ae6166803378e)
@@ -39,21 +39,19 @@
 from ammosreader import logger
 
+
 class AmmosIFReader(AbstractAmmosReader):
     &#34;&#34;&#34;I read the IF data embedded in an R&amp;S AMMOS recording.&#34;&#34;&#34;
 
-    def __init__(self, file_name):
-        super().__init__(file_name)
-
     def read_next_global_frame_body_data_header(self):
-
+        &#34;&#34;&#34;I read the next data header of a global frame body from current position in file.&#34;&#34;&#34;
         header_size = AmmosIFDataHeader.HEADER_SIZE
 
-        bytes = self.ammos_file.read(header_size)
+        in_bytes = self.ammos_file.read(header_size)
 
         logger.info(&#34;\nReading global frame body standard data header\n&#34;)
-        if ((not bytes) or (len(bytes) &lt; header_size)):
+        if ((not in_bytes) or (len(in_bytes) &lt; header_size)):
             logger.debug(&#34;Can not read all %s bytes of global frame body data header&#34;, header_size)
             return None
-        return AmmosIFDataHeader.from_bytes(bytes)
+        return AmmosIFDataHeader.from_bytes(in_bytes)
 
     def read_next_global_frame_body_extended_data_header(self):
@@ -66,11 +64,11 @@
         header_size = AmmosExtendedIFDataHeader.HEADER_SIZE
 
-        bytes = self.ammos_file.read(header_size)
+        in_bytes = self.ammos_file.read(header_size)
 
         logger.info(&#34;\nReading global frame body extended data header\n&#34;)
-        if ((not bytes) or (len(bytes) &lt; header_size)):
+        if ((not in_bytes) or (len(in_bytes) &lt; header_size)):
             logger.debug(&#34;Can not read all %s bytes of global frame extended data header&#34;, header_size)
             return None
-        return AmmosExtendedIFDataHeader.from_bytes(bytes)
+        return AmmosExtendedIFDataHeader.from_bytes(in_bytes)
 
     def read_next_if_data_body(self, number_of_data_blocks, data_length):
@@ -132,4 +130,5 @@
 
     def payload(self):
+        &#34;&#34;&#34;I return just the pure date (payload) from my container.&#34;&#34;&#34;
         return b&#34;&#34;.join([each.global_frame_body.data_body.payload for each in self.container.global_frames])</code></pre>
 </details>
@@ -161,18 +160,15 @@
     &#34;&#34;&#34;I read the IF data embedded in an R&amp;S AMMOS recording.&#34;&#34;&#34;
 
-    def __init__(self, file_name):
-        super().__init__(file_name)
-
     def read_next_global_frame_body_data_header(self):
-
+        &#34;&#34;&#34;I read the next data header of a global frame body from current position in file.&#34;&#34;&#34;
         header_size = AmmosIFDataHeader.HEADER_SIZE
 
-        bytes = self.ammos_file.read(header_size)
+        in_bytes = self.ammos_file.read(header_size)
 
         logger.info(&#34;\nReading global frame body standard data header\n&#34;)
-        if ((not bytes) or (len(bytes) &lt; header_size)):
+        if ((not in_bytes) or (len(in_bytes) &lt; header_size)):
             logger.debug(&#34;Can not read all %s bytes of global frame body data header&#34;, header_size)
             return None
-        return AmmosIFDataHeader.from_bytes(bytes)
+        return AmmosIFDataHeader.from_bytes(in_bytes)
 
     def read_next_global_frame_body_extended_data_header(self):
@@ -185,11 +181,11 @@
         header_size = AmmosExtendedIFDataHeader.HEADER_SIZE
 
-        bytes = self.ammos_file.read(header_size)
+        in_bytes = self.ammos_file.read(header_size)
 
         logger.info(&#34;\nReading global frame body extended data header\n&#34;)
-        if ((not bytes) or (len(bytes) &lt; header_size)):
+        if ((not in_bytes) or (len(in_bytes) &lt; header_size)):
             logger.debug(&#34;Can not read all %s bytes of global frame extended data header&#34;, header_size)
             return None
-        return AmmosExtendedIFDataHeader.from_bytes(bytes)
+        return AmmosExtendedIFDataHeader.from_bytes(in_bytes)
 
     def read_next_if_data_body(self, number_of_data_blocks, data_length):
@@ -251,4 +247,5 @@
 
     def payload(self):
+        &#34;&#34;&#34;I return just the pure date (payload) from my container.&#34;&#34;&#34;
         return b&#34;&#34;.join([each.global_frame_body.data_body.payload for each in self.container.global_frames])</code></pre>
 </details>
@@ -264,5 +261,5 @@
 </code></dt>
 <dd>
-<div class="desc"></div>
+<div class="desc"><p>I return just the pure date (payload) from my container.</p></div>
 <details class="source">
 <summary>
@@ -270,4 +267,5 @@
 </summary>
 <pre><code class="python">def payload(self):
+    &#34;&#34;&#34;I return just the pure date (payload) from my container.&#34;&#34;&#34;
     return b&#34;&#34;.join([each.global_frame_body.data_body.payload for each in self.container.global_frames])</code></pre>
 </details>
@@ -315,5 +313,5 @@
 </code></dt>
 <dd>
-<div class="desc"></div>
+<div class="desc"><p>I read the next data header of a global frame body from current position in file.</p></div>
 <details class="source">
 <summary>
@@ -321,14 +319,14 @@
 </summary>
 <pre><code class="python">def read_next_global_frame_body_data_header(self):
-
+    &#34;&#34;&#34;I read the next data header of a global frame body from current position in file.&#34;&#34;&#34;
     header_size = AmmosIFDataHeader.HEADER_SIZE
 
-    bytes = self.ammos_file.read(header_size)
+    in_bytes = self.ammos_file.read(header_size)
 
     logger.info(&#34;\nReading global frame body standard data header\n&#34;)
-    if ((not bytes) or (len(bytes) &lt; header_size)):
+    if ((not in_bytes) or (len(in_bytes) &lt; header_size)):
         logger.debug(&#34;Can not read all %s bytes of global frame body data header&#34;, header_size)
         return None
-    return AmmosIFDataHeader.from_bytes(bytes)</code></pre>
+    return AmmosIFDataHeader.from_bytes(in_bytes)</code></pre>
 </details>
 </dd>
@@ -353,11 +351,11 @@
     header_size = AmmosExtendedIFDataHeader.HEADER_SIZE
 
-    bytes = self.ammos_file.read(header_size)
+    in_bytes = self.ammos_file.read(header_size)
 
     logger.info(&#34;\nReading global frame body extended data header\n&#34;)
-    if ((not bytes) or (len(bytes) &lt; header_size)):
+    if ((not in_bytes) or (len(in_bytes) &lt; header_size)):
         logger.debug(&#34;Can not read all %s bytes of global frame extended data header&#34;, header_size)
         return None
-    return AmmosExtendedIFDataHeader.from_bytes(bytes)</code></pre>
+    return AmmosExtendedIFDataHeader.from_bytes(in_bytes)</code></pre>
 </details>
 </dd>
Index: doc/ammosreader/AmmosSingleFrame.html
===================================================================
--- doc/ammosreader/AmmosSingleFrame.html	(revision 04097cdb708531c6549b286c360cd998d5deb618)
+++ doc/ammosreader/AmmosSingleFrame.html	(revision 7752d1f99e91b74a1fdc11cfd15ae6166803378e)
@@ -48,6 +48,4 @@
                                                           (self.global_frame_body.data_header.block_count *
                                                            (self.global_frame_body.data_header.block_length + 4))))
-    # FIXME: Use str method instead
-
     def __str__(self):
         output = (
@@ -102,6 +100,4 @@
                                                           (self.global_frame_body.data_header.block_count *
                                                            (self.global_frame_body.data_header.block_length + 4))))
-    # FIXME: Use str method instead
-
     def __str__(self):
         output = (
Index: doc/ammosreader/IQDWTXBlock.html
===================================================================
--- doc/ammosreader/IQDWTXBlock.html	(revision 04097cdb708531c6549b286c360cd998d5deb618)
+++ doc/ammosreader/IQDWTXBlock.html	(revision 7752d1f99e91b74a1fdc11cfd15ae6166803378e)
@@ -34,6 +34,6 @@
     @classmethod
     def from_bytes(cls, byte_string):
-        pdw = PDW.from_bytes(bytes[0:32])
-        return IQDWTXBLOCK(pdw, bytes[32:])
+        pdw = PDW.from_bytes(byte_string[0:32])
+        return IQDWTXBLOCK(pdw, byte_string[32:])
 
     def __init__(self, pdw, iq):
@@ -66,6 +66,6 @@
     @classmethod
     def from_bytes(cls, byte_string):
-        pdw = PDW.from_bytes(bytes[0:32])
-        return IQDWTXBLOCK(pdw, bytes[32:])
+        pdw = PDW.from_bytes(byte_string[0:32])
+        return IQDWTXBLOCK(pdw, byte_string[32:])
 
     def __init__(self, pdw, iq):
@@ -87,6 +87,6 @@
 <pre><code class="python">@classmethod
 def from_bytes(cls, byte_string):
-    pdw = PDW.from_bytes(bytes[0:32])
-    return IQDWTXBLOCK(pdw, bytes[32:])</code></pre>
+    pdw = PDW.from_bytes(byte_string[0:32])
+    return IQDWTXBLOCK(pdw, byte_string[32:])</code></pre>
 </details>
 </dd>
Index: doc/ammosreader/PPDWContainer.html
===================================================================
--- doc/ammosreader/PPDWContainer.html	(revision 04097cdb708531c6549b286c360cd998d5deb618)
+++ doc/ammosreader/PPDWContainer.html	(revision 7752d1f99e91b74a1fdc11cfd15ae6166803378e)
@@ -27,7 +27,6 @@
 <span>Expand source code</span>
 </summary>
-<pre><code class="python">import numpy as np
-from datetime import datetime
-
+<pre><code class="python">from datetime import datetime
+import numpy as np
 
 class PPDWContainer():
@@ -93,8 +92,8 @@
 
     def start_time(self):
-        return min([each.time_of_arrival for each in self.signals])
+        return min(each.time_of_arrival for each in self.signals)
 
     def end_time(self):
-        return max([each.time_of_arrival for each in self.signals])
+        return max(each.time_of_arrival for each in self.signals)
 
     def to_json(self):
@@ -196,8 +195,8 @@
 
     def start_time(self):
-        return min([each.time_of_arrival for each in self.signals])
+        return min(each.time_of_arrival for each in self.signals)
 
     def end_time(self):
-        return max([each.time_of_arrival for each in self.signals])
+        return max(each.time_of_arrival for each in self.signals)
 
     def to_json(self):
@@ -295,5 +294,5 @@
 </summary>
 <pre><code class="python">def end_time(self):
-    return max([each.time_of_arrival for each in self.signals])</code></pre>
+    return max(each.time_of_arrival for each in self.signals)</code></pre>
 </details>
 </dd>
@@ -362,5 +361,5 @@
 </summary>
 <pre><code class="python">def start_time(self):
-    return min([each.time_of_arrival for each in self.signals])</code></pre>
+    return min(each.time_of_arrival for each in self.signals)</code></pre>
 </details>
 </dd>
Index: doc/ammosreader/PPDWReader.html
===================================================================
--- doc/ammosreader/PPDWReader.html	(revision 04097cdb708531c6549b286c360cd998d5deb618)
+++ doc/ammosreader/PPDWReader.html	(revision 7752d1f99e91b74a1fdc11cfd15ae6166803378e)
@@ -27,10 +27,11 @@
 <span>Expand source code</span>
 </summary>
-<pre><code class="python">from pathlib import Path
+<pre><code class="python">from ammosreader.PDW import PDW
+from ammosreader.PPDWContainer import PPDWContainer
+from ammosreader import logger
 
-from ammosreader.PDW import PDW
-from ammosreader.PPDWContainer import PPDWContainer
 
 class PPDWReader():
+    &#34;&#34;&#34;I read data from a file and return a PPDWContainer.&#34;&#34;&#34;
 
     def __init__(self, a_file):
@@ -48,8 +49,8 @@
                 assert len(current_bytes) == 32
                 if not current_bytes:
-                    # print(&#39;End of file detected&#39;)
+                    logger.info(&#39;End of file detected&#39;)
                     break
                 if self.cursor + 32 &gt;= len(self.content):
-                    # print(&#39;Can not read all 32 bytes of next PDW. EOF&#39;)
+                    logger.info(&#39;Can not read all 32 bytes of next PDW. EOF&#39;)
                     break
                 self.container.add(PDW.from_bytes(current_bytes))
@@ -74,5 +75,5 @@
 </code></dt>
 <dd>
-<div class="desc"></div>
+<div class="desc"><p>I read data from a file and return a PPDWContainer.</p></div>
 <details class="source">
 <summary>
@@ -80,4 +81,5 @@
 </summary>
 <pre><code class="python">class PPDWReader():
+    &#34;&#34;&#34;I read data from a file and return a PPDWContainer.&#34;&#34;&#34;
 
     def __init__(self, a_file):
@@ -95,8 +97,8 @@
                 assert len(current_bytes) == 32
                 if not current_bytes:
-                    # print(&#39;End of file detected&#39;)
+                    logger.info(&#39;End of file detected&#39;)
                     break
                 if self.cursor + 32 &gt;= len(self.content):
-                    # print(&#39;Can not read all 32 bytes of next PDW. EOF&#39;)
+                    logger.info(&#39;Can not read all 32 bytes of next PDW. EOF&#39;)
                     break
                 self.container.add(PDW.from_bytes(current_bytes))
@@ -123,8 +125,8 @@
             assert len(current_bytes) == 32
             if not current_bytes:
-                # print(&#39;End of file detected&#39;)
+                logger.info(&#39;End of file detected&#39;)
                 break
             if self.cursor + 32 &gt;= len(self.content):
-                # print(&#39;Can not read all 32 bytes of next PDW. EOF&#39;)
+                logger.info(&#39;Can not read all 32 bytes of next PDW. EOF&#39;)
                 break
             self.container.add(PDW.from_bytes(current_bytes))
Index: doc/ammosreader/index.html
===================================================================
--- doc/ammosreader/index.html	(revision 04097cdb708531c6549b286c360cd998d5deb618)
+++ doc/ammosreader/index.html	(revision 7752d1f99e91b74a1fdc11cfd15ae6166803378e)
@@ -81,5 +81,5 @@
 <dt><code class="name"><a title="ammosreader.AmmosContainer" href="AmmosContainer.html">ammosreader.AmmosContainer</a></code></dt>
 <dd>
-<div class="desc"><p>I store the content of an R&amp;S Ammos file in a more accessible way.</p></div>
+<div class="desc"><p>I provide an Ammos container.</p></div>
 </dd>
 <dt><code class="name"><a title="ammosreader.AmmosExtendedAudioDataHeader" href="AmmosExtendedAudioDataHeader.html">ammosreader.AmmosExtendedAudioDataHeader</a></code></dt>
