Alright so if you step out to look at this method it is pretty silly how nested some of the code paths are..

if .. else ... if ... elseif => if

I would prefer if we could add another commit on top of this to refactor this to make it more readable  / maintainable. As it stands this method has gotten out of hand.