data persistence across app launches using NSUserDefaults & NSKeyedArchiver / NSCoder (for custom objects)