It would be good to add some validation for dimensions. Something like:
```
if not dims <= set(self.coordinates):
    raise ValueError('...')
```