Nice overview Mike. I thought a nod to Rx was an obvious omission. Rx would save you writing the boilerplate code for your Observable classes.

Would love to see more.

Lee