added data persistence by saving with NSUserDefaults and NSCoding