Add UpdaterSpec
Updater#listener can fallback to NullUpdateListener
Don't use subclass's mutex