Constructing a persistent and cross-platform settings system