Hm, how important is this? If we want to stay with the old structure, I could add the `foo, closed := <- ...` to the remaining cases and check the value of `closed` before doing anything to fix the immediate crash. However, we also have timers that eventually put requests on these channels. So I guess `Close()` would need to stop these timers first and then close the channels they write into. I hope I'm not overlooking more, as this is getting a bit confusing.