At the moment only 2d to 1d contractions are supported, should generalise this to include: - [ ] `n`d to `n-1`d - [ ] `n`d to `m`d where `n > m`