public function toUriString(Scheme $scheme = null)
    {
        $authority_string = $this->user_info->toUriString() .
            $this->host->toUriString() .
            $this->port->toUriString($scheme);

        if (!empty($authority_string)) {
            $authority_string = "//" . $authority_string;
        }

        return $authority_string;
    }