     form.hide()
     @forwardEvent form, 'Cancel'
     @provideData formName, provides
+
     return this
 
   removeForm: (form) ->


    return this

  showForm: (form) ->
    @hideForms()
    form = @getForm form
    form.activate? this
    form.show()
    
    return this


    @forms      = {}
    @providers  = {}

    @active = null

    @history = new FormWorkflow.History

  isWorkflow: yes

  enter: -> @ready @bound 'nextForm'

  go: (direction) ->

    provider = do @history[direction]

    if provider.isWorkflow
      if (provider is @active and direction is 'back') or
         (direction is 'next')

        provider.go direction 

    @showForm provider, no

  next: -> @go 'next'

  back: -> @go 'back'

  requireData: (fields, mode = 'all') ->
    gate =
