 }
 
 
-// MARK: - Disk
+// MARK: - Disk (Public)
 
 extension Account {
-	
-	private struct Key {
+
+	func objects(with diskObjects: [[String: Any]]) -> [AnyObject] {
+
+		return diskObjects.flatMap { object(with: $0) }
+	}
+}
+
+// MARK: - Disk (Private)
+
+private extension Account {
+	
+	struct Key {
 		static let children = "children"
+	}
+
+	func object(with diskObject: [String: Any]) -> AnyObject? {
+
+		if Feed.isFeedDictionary(diskObject) {
+			return Feed(accountID: accountID, dictionary: diskObject)
+		}
+		return Folder(account: self, dictionary: diskObject)
 	}
 
 	func pullObjectsFromDisk() {

		catch let error as NSError {
			NSApplication.shared.presentError(error)
		}

		dirty = false
	}
}


	private var dirty = false {
		didSet {
			if dirty {
				resetSaveTimer()
			}
			else {
				removeSaveTimer()
			}
		}
	}
