@danchick: This was a lot