Instead of baking in state changes, change the overall state and let other apps listen for that event