Hah, this is exactly what I just refactored out.  I was trying to address @nulltoken 's registration concerns.  Implementing `IDisposable` makes it very easy to unregister these, this was an explicit attempt to make that more difficult.