Hi bblay.  I think the reason I did it like this is because there are things, specifically ```res_shape```, which are used after ```_vectorise``` but which are easiest to calculate at the same time as ```slice_ind``` and ```res_ind```. I can either

1. Refactor into a single function but return ```vec_a, vec_b``` and ```res_shape```
1. Only return  ```vec_a, vec_b``` but then calculate ```res_shape``` somewhere else, thereby repeating some code that is currently in ```separate_dims()```
1. Keep as is

my guess is that the first one is probably the best - its slightly bespoke, but its neatest