Just pushed the model I was talking about into a branch of the contact-list called channel_watcher. The code is pretty bad and hacky but it shows what I'm working towards. I suggest people try it out because it's super cool. Once the rest of the model moving is done I'll put this into the proper place in common-internals.