Apparently I'm a bad programmer, because it's very much like me to do something like the example in the original post. It looks simple and straightforward to me, no reason to split it up into 3...