public function addStream(IStream $stream) : void
    {
        if (!$stream->isReadable()) {
            throw new InvalidArgumentException('Stream must be readable');
        }

        $this->isSeekable = $this->isSeekable && $stream->isSeekable();
        $this->streams[] = $stream;
    }