Kotlin's new [`Flow`](https://kotlinlang.org/docs/reference/coroutines/flow.html) seems like a better abstraction to capture and rebroadcast changes. Can we adopt it?