public function withScheme($scheme): self
    {
        $scheme        = $this->filterScheme($scheme);
        $clone         = clone $this;
        $clone->scheme = $scheme;

        return $clone;
    }