Add SettingsProviderWithDefaultSettingRepository
Fix various bugs
Add more test case