         didSet {
             reset()
             currentSubscription = current.didChangePublisher.sink { value in
-                if self.state != .active { self.reset() }
+                if self.state != .active || self.current.isScheduled { self.reset() }
             }
-            if current.isScheduled { start() }
         }
     }
     

    
    private init() {
        currentSubscription = current.didChangePublisher.sink { value in
            if self.state != .active { self.reset() }
        }
    }
    

        }
        
        state = .reset
        
        if current.isScheduled { start() }
    }
    
    func tick() {
