Complete widget with prefs and proper updates