public function withKey(string $key) : self { $clone = clone $this; $clone->key = $key; return $clone; }