better async and cleaned up preferences
moved pref loading and saving to caller to it can pass down the prefs and manage the correct last checked time when multiple providers are introduced. added some pref checking to prevent unhandled exceptions when configuration is missing. still could do more, but good enough for now. more tracing.