I propose that in FM3 Configuration should only have two constructors: Configuration(Version incompatibleImprovements) Configuration(Properties properties)
and that it should not have a setIncompatibleImprovements(Version) method. Because then it can be ensured that cfg.incompatibleImprovements is always set first, and not modified anymore. It's simplifies life considerably, because changing the incompatibleImprovements changes the default of some settings, so when in FM2 you change it at some later point, we will have to figure out which settings were never set with the public setter method, and thus still hold the initial default (not just something that's identical to it!), and thus has to be changed. Because Properties are esentially unordered, we also have to get all of them at once, so that we can sort them (bring incompatibleImprovements to the first place, sort any other dependent settings too). I also intend to remove `String getSetting(String)`, because it can't be implemented and has never worked. I'm also very inclined to remove setSetting(String) and setSettings(Properties), as it can lure the user into some ordering traps. I think Configuration(Properties properties) should be enough, and then, the user is forced to collect all the properties together (coming form different source maybe, that's why he collects them), and the we can do a proper ordering because we have all of them at once. Thoughts? -- Thanks, Daniel Dekany