But that part of the algorithm stayed exactly the same, didnt it?  Didnt you just move it somewhere else? 

My reasoning here is that for me this is confusing because i would expect that check at the beginning, but maybe thats just me...:)

Not sure about the performance though...