         
     }
     
-    /// Sets the buffer back to the beginning position
+    /// Sets the buffer back to the beginning position, the next fill call will take data
+    /// from the beginning of the buffer.
     public func rewind() {
         
         byteIndex = 0

    /// - Parameter buffer: NSMutablePointer to the beginning of the memory to be filled
    /// - Parameter length: The number of bytes to fill
    ///
    /// - Returns:
    public func fill(buffer: UnsafeMutablePointer<UInt8>, length: Int) -> Int {
        
        let result = min(length, localData.length - byteIndex)

    ///
    /// - Parameter data: The Data struct to fill from data in the buffer
    ///
    /// - Returns: The number of bytes actually copied from the buffer. It will be equal
    ///           to the number of bytes lect in the buffer.
    public func fill(data: inout Data) -> Int {
        
        let result = localData.length - byteIndex
