This adds a lot of complications, and is not a great idea. I think `cohorts` is a better version of `split_out`. It would be a pretty decent simplification of the code.