   all: (fields...) -> new All fields
   any: (fields...) -> new Any fields
 
-  class Collector extends KDEventEmitter
+  @Collector = class Collector extends KDEventEmitter
 
     constructor: (@gate = new Gate) ->
       super

      @gate.on 'report', (state) => switch state
        when 'Satisfied'
          @emit 'DataCollected', @data
        when 'Dissatisfied' then #ignore

    addRequirement: (requirement) ->
      @gate.addField requirement

    getData: -> @gate.getData()

    collectData: (data) ->
      @defineKey key, val  for own key, val of data

    compliment: (value) -> !value

    # Any#createSatisfier returns a singleton satisfier :)
    createSatisfier: -> @satisfier ?= super()
