It might be safer here to do this:

```python
def __init__(self, client):
    self._addr = client._addr
    self._sock = socket.socket(...)
    self._prefix = client._prefix
```

Or even just use the exact same constructor and so in `StatsClient.pipeline` create it with:

```python
def pipeline(self):
    return Pipeline(self._addr[0], self._addr[1], self._prefix)
```

That would let users create `Pipeline` objects directly if they really wanted to.