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