         return nil
     }
     
-    // MARK: cache
+    // MARK: Cache
     
     fileprivate static let userDefaults = UserDefaults.standard
+    
+    fileprivate static var firstUsed: Date {
+        set (date) {
+            userDefaults.set(date, forKey: EggRatingUserDefaultsKey.firstUsedKey.rawValue)
+        } get {
+            guard let firstUsedDate = userDefaults.object(forKey: EggRatingUserDefaultsKey.firstUsedKey.rawValue) as? Date else {
+                let today = Date()
+                userDefaults.set(today, forKey: EggRatingUserDefaultsKey.firstUsedKey.rawValue)
+                return today
+            }
+            
+            return firstUsedDate
+        }
+    }
     
     fileprivate static var lastRemind: Date {
         set(date) {

    
    // MARK: - Helper
    
    // MARK: - View
    
    private static var rateViewFromNib: UIViewController? {
        let podBundle = Bundle(for: EggRating.self)

    public static func promptRateUsIfNeeded(viewController: UIViewController) {
        if shouldPromptForRating {
            self.promptRateUs(viewController: viewController)
            lastRemind = Date()
        }
    }
    
