This else condition seems to be handling 3 different cases, and while I get how it works now, I'm sure I'll forget and if I'm tired I could go mad reading the below ;)  Can we break it up and handle the 4 cases explicitly please?  I think that'll be easier to maintain and at least easier to understand.