public function withProtocolVersion($version) { $this->validateProtocolVersion($version); $new = clone $this; $new->protocol = $version; return $new; }