Implementing CLJS side as a state machine, to mirror the state machine we're abstracting over
Splitting out part of the example application
Updating the example app to use the new connection error handling