 
         @addChild field
 
-        field.on 'status', (isSatisfied) =>
+        field.on 'status', (isSatisfied) ->
           if isSatisfied
           then satisfier.satisfy()
           else satisfier.cancel()


  constructor: (options = {}, data) ->
    super options, data
    @forms = {}
    @collector = new Collector
    @collector.on 'Pending', => @nextForm()
    @forwardEvent @collector, 'DataCollected'
    @providers = {}

  enter: -> @ready => @nextForm()

  requireData: (fields) ->
    gate =
      if fields.isGate
      then fields
      else @all fields...

    @collector.addRequirement gate


    compliment: (value) -> value

    isSatisfied: ->
      for category in [@fields, @children]
        for own _, node of category when not @compliment node.isSatisfied()
          return @kill()

      return not @kill()

    toString: -> "gate-#{@id}"

