 // MARK: - Custom private Types and Functions
 
 fileprivate func readInt(pointer : UnsafeRawPointer, width : UInt8) -> Int64? {
+    guard 0 == (UInt(bitPattern: pointer) & (UInt(width) - 1)) else {
+        return nil
+    }
     if width == 1 {
         return Int64(pointer.load(as: Int8.self))
     }

}

fileprivate func readDouble(pointer : UnsafeRawPointer, width : UInt8) -> Double? {
    if width == 4 {
        return Double(pointer.load(as: Float.self))
    }

}

fileprivate func readFloat(pointer : UnsafeRawPointer, width : UInt8) -> Float? {
    guard 0 == (UInt(bitPattern: pointer) & (UInt(width) - 1)) else {
        return nil
    }
    if width == 4 {
        return pointer.load(as: Float.self)
    }
