             Team.teamList.removeAtIndex(idx!)
             Team.teamList.append(self)
         }
+        
+        self.persistObservedTeams()
+    }
+    
+    func persistObservedTeams() {
+        let defaults = NSUserDefaults.standardUserDefaults()
+        let data = NSKeyedArchiver.archivedDataWithRootObject(Team.teamList)
+        
+        defaults.setObject(data, forKey: Team.teamListPropertyName);
     }
     
     static func findByName(name name: String) -> Team? {


import Foundation

class Team: NSObject {
    
    //Temporary storage
    private static var teamList: [Team] = []
    
    //MARK: Properties
    var name: String

        self.name = name
        self.observed = observed
    }
    
    //MARK: NSCoding
    required convenience init?(coder decoder: NSCoder) {
        let observed = decoder.decodeBoolForKey(Team.observedPropertyName)
        guard let name = decoder.decodeObjectForKey(Team.namePropertyName) as? String
            else {
                return nil;
        }
        self.init(name: name, observed: observed)
    }
    
    
    func encodeWithCoder(coder: NSCoder) {
        coder.encodeObject(self.name, forKey:Team.namePropertyName)
        coder.encodeBool(self.observed, forKey: Team.observedPropertyName)
    }
    
    
    func save() {
        let idx = Team.teamList.indexOf { (team: Team) -> Bool in
