Feature compute separation

@s-u, opening a PR on this to discuss
But doesn't that change the return value to an array? Wouldn't that break the code that relies on the return value to be `res`?