fixed a few bugs; introduced BlockedPhase; made AnalyzingPhase aware of the transition that initiated it, so it can take different paths depending on origin