I see your point, and I agree that they are coupled, but it's data coupling that I think is justified ...

The ```CubeSignature``` represents a *stripped-back* ```Cube```. Some work has been performed by the ```CubeSignature``` to harvest only the relevant meta-data. The ```CoordSignature``` only requires three kinds of cube meta-data:

* The cube dimension coordinates
* The monotonic order of the cube dimension coordinates
* The cube auxiliary coordinates and associated dimensions

This has already been performed by the ```CubeSignature```. It's available and ready to be used. Of course the same source ```Cube``` could be passed to the ```CoordSignature```, but it would have to **repeat** the work already performed by the ```CubeSignature```, which I feel is completely wasted effort. We need to factor in some optimisations and this is definitely one benefit that should be reaped.

Alternatively, I could pass the three individual meta-data into the ```CoordSignature```, but why do that when it's neater to pass them all encapsulated within the one ```CubeSignature```.