             multiplier = 1
         }
         
-        var t = time + TimeInterval(change * 100 * multiplier).minutes
-        t.normalize(min: TimePickerConfig.Time.timeRange.lowerBound, max: TimePickerConfig.Time.timeRange.upperBound)
-        time = t
+        updateTime(newTime: time + TimeInterval(change * 100 * multiplier).minutes)
     }
     
 }
+
+extension TimeCalculator {
+    
+    fileprivate func updateTime(newTime time: TimeInterval) {
+        var tmp = time
+        tmp.normalize(min: TimePickerConfig.Time.timeRange.lowerBound, max: TimePickerConfig.Time.timeRange.upperBound)
+        self.time = tmp
+    }
+    
+}

            
            guard let sself = self, let step = sself.step else { return }
            
            sself.time += step.minutes
        })
        timer?.fire()
    }

extension TimeCalculator {
    
    func increment() {
        updateTime(newTime: time + config.step.minutes)
        
        if timer != nil {
            step = config.step
