         let finalResult = eventCountConditions && firstEventDateConditions && lastEventDateConditions && executionCountConditions && executionDateConditions && customConditionsValue
         
         if finalResult {
-            incrementExecutionsCounter()
-            saveLastExecutionDate(timeNow: timeNow)
+            statsStorage.incrementExecutionsCounter()
+            statsStorage.saveLastExecutionDate(timeNow: timeNow)
         }
         
         completion(finalResult)

    
    static func reset() {
        config()
        stats.reset()
    }
    
    private static func incrementExecutionsCounter() {
        stats.incrementExecutionsCounter()
    }
    
    private static func saveLastExecutionDate(timeNow: Date) {
        stats.saveLastExecutionDate(timeNow: timeNow)
    }
    
    private static var stats: StatsStorage<Self> {
        return StatsStorage<Self>()
    }

    private static var config: ConfigStorage<Self> {
        get { return ConfigStorage<Self>() }
        set {}
    }

        let result: Bool
        
        if let minSecondsInterval = minSecondsSinceFirstEvent,
            let firstEventDate = statsStorage.currentFirstEventDate {
            let secondsSinceFirstEvent = timeNow.timeIntervalSince1970 - firstEventDate.timeIntervalSince1970
            
            result = secondsSinceFirstEvent > minSecondsInterval
