     return
 
   #処理を一時停止する
+  suspend:()->
+    if @._beforeDeffer?
+      @._beforeDeffer.suspend()
+    Kazitori.started = false
+    @.isSuspend = true
+    @._dispatcher.dispatchEvent( new KazitoriEvent(KazitoriEvent.SUSPEND, @.fragment, @.lastFragment))
+    return
+
+  #処理を再開する
   resume:()->
     if @._beforeDeffer?
       @._beforeDeffer.resume()
-    @.isResume = true
+    Kazitori.started = true
+    @.isSuspend = false
+    @[@._processStep.status](@._processStep.args)
     @._dispatcher.dispatchEvent( new KazitoriEvent(KazitoriEvent.RESUME, @.fragment, @.lastFragment))
-    return
-
-  #処理を再開する
-  restart:()->
-    if @._beforeDeffer?
-      @._beforeDeffer.restart()
-    @.isResume = false
-    @[@._processStep.status](@._processStep.args)
-    @._dispatcher.dispatchEvent( new KazitoriEvent(KazitoriEvent.RESTART, @.fragment, @.lastFragment))
     return
     
   registerHandler:(rule, name, isBefore, callback )->

          argsMatch = []
          len = args.length
          i = 0

          while i < len
            a = args[i]
            t = handler.types[i]
            if typeof a isnt "object"
              if t is null or @_typeCheck(a,t) is true
                argsMatch.push true
            i++
          if not false in argsMatch
            matched.push handler
        else
          matched.push handler

  executeHandlers:()=>
    @._processStep.status = 'executeHandlers'
    @._processStep.args = []
    if @.isSuspend
      return
    #毎回 match チェックしてるので使いまわしたいのでリファクタ
    matched = @._matchCheck(@.fragment, @.handlers)
