public override int Read(byte[] buffer, int offset, int count)
    {
        int bytesRead = DecoratedInstance.Read(buffer, offset, count);

        // raise the bytes read event
        byte[] temp = new byte[bytesRead];
        Array.Copy(buffer, offset, temp, 0, bytesRead);
        BytesRead(temp);
        return(bytesRead);
    }