rewrote the settings manager to make it easier to use