I'm starting to have trouble reviewing this method. Probably because I'm tired, but the method is also too long and has too many conditionals & nesting IMO, so the code becomes difficult to follow.