     let bufferSize:             Int
     let dataUnitSize:           Int
 
-    var data:                   [UInt8]
+    var data:                   Data
     var buffer:                 [UInt8]
     var encoding:               String.Encoding
     var firstData:              Bool

        self.streamDescription = description ?? stream.description
        self.firstData = true

        self.data = [UInt8]()
        self.buffer = [UInt8](repeating: 0, count: self.bufferSize)
        
        self.dataUnitSize = {

        if(count == -1) {
            throw IOException.ErrorReadingFromStream(error: stream.streamError, description: description)
        }

        var skipBytes = 0
        
        if(firstData) {
            firstData = false
            skipBytes = try analyzeBOM()
        }

        data.append(contentsOf: buffer[skipBytes ..< count])
    }
    
    /**
