This is Part 4 of a four part series where we explore some of the tools available to detect and manage online/offline connectivity in web/mobile applications. In Part 1 we looked at the available APIs for detecting connectivity state (and the woes associated with them). In Part 2 we wrote a hand-rolled abstraction to manage using these APIs together and began to see elements of a state machine emerge from the chaos. In Part 3 we explored how we can keep our FSMs from violating SRP, and set the stage for using multiple FSMs together to model more complex application behavior. In this final part of the series, we look at setting up hierarchical FSMs to manage more complex behavior.