For `set` we want to clone just before we save the value because then we know that the data has changed. For `get` we should only need to clone in `PreferencesSystem.get` once the value is leaving the PreferencesSystem.