Refactor: use Singleton pattern for accessing Settings
Use the Singleton pattern for accessing Settings.
This avoid the notorious race conditions that occur when every piece of code opens the settings file on its own (e.g. the networking code running in a different thread).
Also remove the set
vs setNow
. I don't see high value in storing settings delayed. Just store them immediately.