Why not passing the CSettingsManager object in the constructor like everywhere else? Then CSettingLevel would have the same Deserialize definition like all the other classes.