     :param: now     true, if the timer should fire immediately.
     */
     public func start(now: Bool) {
+        validate()
         if OSAtomicCompareAndSwap32Barrier(State.paused, State.running, &running) {
             if now {
                 self.shouldFireImmediately = true

    Pauses the timer and does not reset the count.
    */
    public func pause() {
        if OSAtomicCompareAndSwap32Barrier(State.running, State.paused, &running) {
            dispatch_suspend(timer)
        }

            }
        }
    }
    
    private func validate() {
        if valid != State.valid {
            NSException(name: NSInternalInconsistencyException,
                reason: "Attempting to use invalid DispatchTimer",
                userInfo: nil).raise()
        }
    }
}