Refactoring observation code into separate object
Doing away with `Updater.push`

The continued usage of that method was little more than a latent bug
that somehow hadn't yet reared its head in an obvious manner.

Also, dat 10% speedup.