diff --git a/tm/OBSW_PusPacket.py b/tm/OBSW_PusPacket.py
index dea7bf94fbecbc9d9150c5dbf6cd158dae13bc18..8caa234499dfe76210636bdd862f3066917853d6 100644
--- a/tm/OBSW_PusPacket.py
+++ b/tm/OBSW_PusPacket.py
@@ -1,14 +1,61 @@
 # -*- coding: utf-8 -*-
 """
 Created on Wed Apr  4 11:44:48 2018
-
-@author: gaisser
+Generic PUS packet class to deserialize raw PUS telemetry.
+@author: S. Gaisser
 """
 
 import crcmod
 import datetime
 
 
+class OBSWPusPacket:
+    def __init__(self, byteArray):
+        self.packetRaw = byteArray
+        self.PUSHeader = PUSPacketHeader(byteArray)
+        byteArray = byteArray[6:]
+        self.dataFieldHeader = OBSWPUSPacketDataFieldHeader(byteArray)
+        byteArray = byteArray[12:]
+        self.data = byteArray[:len(byteArray)-2]
+        self.crc = byteArray[len(byteArray)-2] << 8 | byteArray[len(byteArray)-1]
+
+    def getRawPacket(self) -> bytearray:
+        return self.packetRaw
+
+    def printPusPacketHeader(self, array):
+        self.dataFieldHeader.printDataFieldHeader(array)
+        self.PUSHeader.printPusPacketHeader(array)
+
+    def printPusPacketHeaderColumnHeaders(self, array):
+        self.dataFieldHeader.printDataFieldHeaderColumnHeader(array)
+        self.PUSHeader.printPusPacketHeaderColumnHeaders(array)
+
+    def getPacketSize(self):
+        # PusHeader Size + data size
+        size = PUSPacketHeader.headerSize + self.PUSHeader.length + 1
+        return size
+
+    def getService(self):
+        return self.dataFieldHeader.type
+
+    def getSubservice(self):
+        return self.dataFieldHeader.subtype
+
+    def getSSC(self):
+        return self.PUSHeader.sourceSequenceCount
+
+    def printData(self):
+        print(self.returnDataString())
+
+    def returnDataString(self):
+        strToPrint = "["
+        for byte in self.data:
+            strToPrint += str(hex(byte)) + " , "
+        strToPrint = strToPrint.rstrip(' , ')
+        strToPrint += ']'
+        return strToPrint
+
+
 class PUSPacketHeader:
     headerSize = 6
 
@@ -102,52 +149,6 @@ class OBSWPUSPacketDataFieldHeader:
         self.time.printTimeHeaders(array)
 
 
-class OBSWPusPacket:
-    def __init__(self, byteArray):
-        self.packetRaw = byteArray
-        self.PUSHeader = PUSPacketHeader(byteArray)
-        byteArray = byteArray[6:]
-        self.dataFieldHeader = OBSWPUSPacketDataFieldHeader(byteArray)
-        byteArray = byteArray[12:]
-        self.data = byteArray[:len(byteArray)-2]
-        self.crc = byteArray[len(byteArray)-2] << 8 | byteArray[len(byteArray)-1]
-
-    def getRawPacket(self) -> bytearray:
-        return self.packetRaw
-
-    def printPusPacketHeader(self, array):
-        self.dataFieldHeader.printDataFieldHeader(array)
-        self.PUSHeader.printPusPacketHeader(array)
-
-    def printPusPacketHeaderColumnHeaders(self, array):
-        self.dataFieldHeader.printDataFieldHeaderColumnHeader(array)
-        self.PUSHeader.printPusPacketHeaderColumnHeaders(array)
-
-    def getPacketSize(self):
-        # PusHeader Size + data size
-        size = PUSPacketHeader.headerSize + self.PUSHeader.length + 1
-        return size
-
-    def getService(self):
-        return self.dataFieldHeader.type
-
-    def getSubservice(self):
-        return self.dataFieldHeader.subtype
-
-    def getSSC(self):
-        return self.PUSHeader.sourceSequenceCount
-
-    def printData(self):
-        print(self.returnDataString())
-
-    def returnDataString(self):
-        strToPrint = "["
-        for byte in self.data:
-            strToPrint += str(hex(byte)) + " , "
-        strToPrint = strToPrint.rstrip(' , ')
-        strToPrint += ']'
-        return strToPrint
-
 # Structure of a PUS Packet :
 # A PUS packet consists of consecutive bits, the allocation and structure is standardised.
 # Extended information can be found in ECSS-E-70-41A  on p.42