@irrationalfab I agree that is much clearer. I'll add that now.

I did not remove any of the tests which test the old behaviour, as they exercise this new code as well. It's better to have too many tests than not enough!