Add a StateUpdater class as a base class for state updaters and taking
care of registering state updaters.
Rename StateUpdater to StateUpdateMethod
use StateUpdateMethod to determine a state updater