sometimes monomorphism does actually make a better interface
change state management. now instead of querying and restoring, just sets changed states to defaults and documents what it does