Index: ammosreader/AmmosAudioDataBlock.py
===================================================================
--- ammosreader/AmmosAudioDataBlock.py	(revision 6059ec7b340ee79c2be57d6cc9efcdbd20dcca71)
+++ ammosreader/AmmosAudioDataBlock.py	(revision 6059ec7b340ee79c2be57d6cc9efcdbd20dcca71)
@@ -0,0 +1,24 @@
+class AmmosAudioDataBlock:
+
+    def __init__(self, pcm_data, number_of_channels=1, samples_per_channel=1, sample_size=1):
+
+        self.__number_of_channels = number_of_channels
+        self.__samples_per_channel = samples_per_channel
+        self.__sample_size = sample_size
+        self.__data = pcm_data
+
+    @property
+    def data(self):
+        return self.__data
+
+    def pcm_for_channel(self, channel_number):
+        return self.__data
+        # return (self.__data[0: 100]) # self.__samples_per_channel])
+        #return bytes([self.__data[each: each+self.__samples_per_channel+1] for each in range(0, len(self.__data), self.__samples_per_channel)
+        #             if (each % (channel_number+1) * self.__samples_per_channel) == 0])
+
+    def __str__(self):
+        return ("Number of channels:" + str(self.__number_of_channels) +
+                "\nSamples per channel:" + str(self.__samples_per_channel) +
+                "\nSample size:" + str(self.__sample_size) +
+                "\nData size:" + str(len(self.__data)))
Index: ammosreader/AmmosAudioReader.py
===================================================================
--- ammosreader/AmmosAudioReader.py	(revision 72b50cdf427a0064571882eca05bdfec81adcd9b)
+++ ammosreader/AmmosAudioReader.py	(revision 6059ec7b340ee79c2be57d6cc9efcdbd20dcca71)
@@ -9,4 +9,5 @@
 from ammosreader.AmmosSingleFrame import AmmosSingleFrame
 from ammosreader.AmmosContainer import AmmosContainer
+from ammosreader.AmmosAudioDataBlock import AmmosAudioDataBlock
 
 
@@ -146,5 +147,5 @@
             return None
         # print([hex(c) for c in byte_string])
-        return byte_string
+        return AmmosAudioDataBlock(byte_string, channel_count, sample_count, sample_size)
 
     def read_next_global_frame_body(self, global_frame_header):
@@ -199,2 +200,5 @@
         ammos_single_frame = AmmosSingleFrame(global_frame_header, global_frame_body)
         return ammos_single_frame
+
+    def pcm_for_channel(self, a_channel):
+        return b"".join([each.global_frame_body.data_body.pcm_for_channel(a_channel) for each in self.container.global_frames])
Index: ammosreader/AmmosContainer.py
===================================================================
--- ammosreader/AmmosContainer.py	(revision 72b50cdf427a0064571882eca05bdfec81adcd9b)
+++ ammosreader/AmmosContainer.py	(revision 6059ec7b340ee79c2be57d6cc9efcdbd20dcca71)
@@ -4,26 +4,41 @@
 
     def __init__(self, name, frames):
-        self.name = name
-        self.global_frames = frames
-        self.tags = []
+        self.__name = name
+        self.__global_frames = frames
+        self.__tags = []
+
+    @property
+    def name(self):
+        return self.__name
+
+    @name.setter
+    def name(self, a_name):
+        self.__name = a_name
+
+    @property
+    def global_frames(self):
+        return self.__global_frames
 
     def add_tag(self, tag):
-        self.tags.append(tag)
+        self.__tags.append(tag)
 
     def add_frame(self, frame):
-        self.global_frames.append(frame)
+        self.__global_frames.append(frame)
 
     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])
 
     def frequencies(self):
-        return set(list(filter(lambda frame: frame.global_frame_body.data_header.frequency, self.global_frames)))
+        return set(list(filter(lambda frame: frame.global_frame_body.data_header.frequency, self.__global_frames)))
 
     def __str__(self):
-        start_time = self.global_frames[0].global_frame_body.data_header.timestamp
-        end_time = self.global_frames[-1].global_frame_body.data_header.timestamp
+        start_time = self.__global_frames[0].global_frame_body.data_header.timestamp
+        end_time = self.__global_frames[-1].global_frame_body.data_header.timestamp
 
-        frq = str(self.global_frames[0].global_frame_body.data_header.frequency)
+        frq = str(self.__global_frames[0].global_frame_body.data_header.frequency)
 
         return ("Start time: " + str(start_time) +
                 "\nEnd time  : " + str(end_time) + "\nFrequencies: " + frq)
+
+    def data_only(self):
+        return [each.global_frame_body.data_body.data for each in self.__global_frames]
Index: ammosreader/AmmosGlobalFrameBody.py
===================================================================
--- ammosreader/AmmosGlobalFrameBody.py	(revision 72b50cdf427a0064571882eca05bdfec81adcd9b)
+++ ammosreader/AmmosGlobalFrameBody.py	(revision 6059ec7b340ee79c2be57d6cc9efcdbd20dcca71)
@@ -2,6 +2,22 @@
 
     def __init__(self, data_header, data_body):
-        self.data_header = data_header
-        self.data_body = data_body
+        self.__data_header = data_header
+        self.__data_body = data_body
+
+    @property
+    def data_header(self):
+        return self.__data_header
+
+    @data_header.setter
+    def data_header(self, a_data_header):
+        self.__data_header = a_data_header
+
+    @property
+    def data_body(self):
+        return self.__data_body
+
+    @data_body.setter
+    def data_body(self, data_bytes):
+        self.__data_body = data_bytes
 
     def data_bytes_only(self):
@@ -13,5 +29,5 @@
                 print("Block is nil")
 
-            byte_string += each_block.if_data
+            byte_string += each_block.data
 
         return byte_string
Index: ammosreader/AmmosSingleFrame.py
===================================================================
--- ammosreader/AmmosSingleFrame.py	(revision 72b50cdf427a0064571882eca05bdfec81adcd9b)
+++ ammosreader/AmmosSingleFrame.py	(revision 6059ec7b340ee79c2be57d6cc9efcdbd20dcca71)
@@ -2,6 +2,14 @@
 
     def __init__(self, global_frame_header, global_frame_body):
-        self.global_frame_header = global_frame_header
-        self.global_frame_body = global_frame_body
+        self.__global_frame_header = global_frame_header
+        self.__global_frame_body = global_frame_body
+
+    @property
+    def global_frame_header(self):
+        return self.__global_frame_header
+
+    @property
+    def global_frame_body(self):
+        return self.__global_frame_body
 
     def data(self):
Index: sample_scripts/audio_reader.py
===================================================================
--- sample_scripts/audio_reader.py	(revision 72b50cdf427a0064571882eca05bdfec81adcd9b)
+++ sample_scripts/audio_reader.py	(revision 6059ec7b340ee79c2be57d6cc9efcdbd20dcca71)
@@ -1,4 +1,8 @@
 import sys
 import os
+import io
+from pydub import AudioSegment
+from pydub.playback import play
+
 sys.path.append('../src/')
 
@@ -17,3 +21,11 @@
 
     dat_file.read_all_frames_left()
-    print(dat_file.container.size())
+    print("Sample rate:", dat_file.container.global_frames[0].global_frame_body.data_header.sample_rate)
+    print("Container size:", dat_file.container.size())
+    pcm_data = dat_file.pcm_for_channel(0)
+    print("PCM data size total:", len(pcm_data))
+    data = AudioSegment.from_raw(io.BytesIO(pcm_data),
+                                 sample_width=2,
+                                 frame_rate=22050,
+                                 channels=1)
+    play(data)
