I completely agree that behaviour should not be different here, I was really hoping for another way to do this neatly. I quite like the struct one, I don't think it's much worse than the original.

Thanks!