     let disclosureType: WMFSettingsMenuItemDisclosureType?
     let type: ItemType
     let title: String?
-    let isSwitchOn: Bool?
+    let isSwitchOn: Bool
     let buttonTitle: String?
-}
-
-private enum ItemType: Int {
-    case syncSavedArticlesAndLists, showSavedReadingList, eraseSavedArticles, syncWithTheServer
-    
-    func item(isSwitchOnByDefault: Bool? = nil) -> Item {
+    
+    init(for type: ItemType, isSwitchOn: Bool = false) {
+        self.type = type
+        self.isSwitchOn = isSwitchOn
+        
         var disclosureType: WMFSettingsMenuItemDisclosureType? = nil
         var title: String? = nil
-        var isSwitchOn: Bool? = nil
         var buttonTitle: String? = nil
-        switch self {
+
+        switch type {
         case .syncSavedArticlesAndLists:
             disclosureType = .switch
             title = WMFLocalizedString("settings-storage-and-syncing-enable-sync-title", value: "Sync saved articles and lists", comment: "Title of the settings option that enables saved articles and reading lists syncing")
-            isSwitchOn = isSwitchOnByDefault
         case .showSavedReadingList:
             disclosureType = .switch
             title = WMFLocalizedString("settings-storage-and-syncing-show-default-reading-list-title", value: "Show Saved reading list", comment: "Title of the settings option that enables showing the default reading list")
-            isSwitchOn = isSwitchOnByDefault
         case .syncWithTheServer:
             disclosureType = .titleButton
             buttonTitle = WMFLocalizedString("settings-storage-and-syncing-server-sync-title", value: "Sync with the server", comment: "Title of the settings button that initiates saved articles and reading lists server sync")

    private var indexPathsForCellsWithSwitches: [IndexPath] = []
    
    private var sections: [Section] {
        let syncSavedArticlesAndLists = ItemType.syncSavedArticlesAndLists.item(isSwitchOnByDefault: isSyncEnabled)
        let showSavedReadingList = ItemType.showSavedReadingList.item(isSwitchOnByDefault: dataStore?.readingListsController.isDefaultListEnabled)
        let eraseSavedArticles = ItemType.eraseSavedArticles.item()
        let syncWithTheServer = ItemType.syncWithTheServer.item()
        
        let syncSavedArticlesAndListsSection = Section(headerTitle: nil, footerText: WMFLocalizedString("settings-storage-and-syncing-enable-sync-footer-text", value: "Allow Wikimedia to save your saved articles and reading lists to your user preferences when you login to sync", comment: "Footer text of the settings option that enables saved articles and reading lists syncing"), items: [syncSavedArticlesAndLists])
        

            break
        }
        
        self.title = title
        self.disclosureType = disclosureType
        self.buttonTitle = buttonTitle
    }
}

private enum ItemType: Int {
    case syncSavedArticlesAndLists, showSavedReadingList, eraseSavedArticles, syncWithTheServer
}

@objc(WMFStorageAndSyncingSettingsViewController)
