 	
 	var urlEncode: String? {
 		get {
-			return addingPercentEncoding(withAllowedCharacters: CharacterSet.alphanumerics)
+			return addingPercentEncoding(withAllowedCharacters: .alphanumerics)
 		}
 	}
 }
 
 extension TodayViewController {
+	
+	private var LastUpdatedKey: String { return "lastUpdated" }
 	fileprivate var lastUpdated: Date? {
 		get {
-			return Date(timeIntervalSinceReferenceDate: UserDefaults.standard.double(forKey: "lastUpdated"))
+			if let interval = UserDefaults.standard.object(forKey: LastUpdatedKey) as? Double {
+				return Date(timeIntervalSinceReferenceDate: interval)
+			}
+			return nil
 		}
 		set {
 			if let newValue = newValue {
-				UserDefaults.standard.set(newValue.timeIntervalSinceReferenceDate, forKey: "lastUpdated")
+				UserDefaults.standard.set(newValue.timeIntervalSinceReferenceDate, forKey: LastUpdatedKey)
 			} else {
-				UserDefaults.standard.removeObject(forKey: "lastUpdated")
+				UserDefaults.standard.removeObject(forKey: LastUpdatedKey)
 			}
+			UserDefaults.standard.synchronize()
 		}
+	}
+}
+
+extension String {
+	
+	var isUserPlaylist: Bool {
+		return !(hasPrefix("_") && hasSuffix("_"))
 	}
 }
 

	
	fileprivate var infinitif: String?
	fileprivate var tense: String?
	fileprivate var lastUsedPlaylist: String?
	fileprivate var isQuizMode = false
	
	@IBOutlet var label: UILabel?
	

		self.infinitif = key
		let comps = (value as! String).components(separatedBy: "|")
		guard (comps.count >= 3) else {
			// @TODO: Should show an error, format is not valid 
			completionHandler(.noData)
			return
		}
		
		var string = "To \(comps[0]), \(comps[1]), \(comps[2])\n"
		
		if (self.isQuizMode) {
			self.playlistName = sharedDefaults!.string(forKey: kLastUsedPlaylistKey)
			if (self.playlistName?.isUserPlaylist == true) {
				let index = Int(arc4random() % 2)
				self.tense = ["past", "past-participle"][index]
				string = "To \(comps[0]), "
