For @astrofrog's suggestion to work we are still going to need a `represent_as` type method inside though? As you can have some simple logic in `__init__` that will transform `c` into `SphericalRepresentation` and return that?