I think I know why you've done this, but passing a CubeSignature to the ```__init__``` rather than a ```Cube``` couples ```CubeSignature``` and ```CoordSignature``` quite tightly. Conceptually they both represent aspects of a Cube so I'd expect them both to take a cube as the argument to ```__init__```.