         fields = @getFields()
         fields.push (child.getFields yes)... for own _, child of @children
         return fields
-      else
-        (key for own key of @fields when not (key of @children))
+
+      (key for own key of @fields when not (key of @children))
 
     nextNode: ->
       node = @ordered[@index]


    return this

  nextForm: ->
    requirement = @nextRequirement()
    return  unless requirement?
    
    provider = @nextProvider requirement
    return  unless provider?

    @showForm provider

    return provider

  nextRequirement: -> @collector.nextRequirement()

  nextProvider: (key, from) ->
    providers = @providers[key]
    providers.i = from ? providers.i ? 0
    provider = providers[providers.i++]

  @Collector = class Collector extends KDEventEmitter

    constructor: (@gate = new Gate) ->
      super()

      @data = @utils.dict()

      @gate.on 'status', (isSatisfied) =>
        if isSatisfied
