Review

I would see if you can break this up with helper methods, if not it's complicated enough that it warrants a comment to explain it