This method is a monster.  Can we extract some meaningful methods?