Personally I'd maybe add displace to `Dimensions` as well. E.g. call `dimensions.displace` here... but that'd break for shape... ah what a cruel world. 

I think it's ok :)