Simplified Subject[-T, +R] extends Observable[R] with Observer[T]
to
Subject[T] extends Observable[T] with Observer[T].

This was a generalization in .NET that did not pan out and Subject is always used with [T,T].

Fought to get multicast to work. I really hate Java variance.