       assert.equal @targetDocument.Meta.document.Meta, @targetDocument.Meta
 
   @_ReferenceField: class extends @_TargetedFieldsObservingField
+    # Arguments:
+    #   targetDocument, fields
+    #   targetDocument, fields, required
+    #   targetDocument, fields, required, reverseName
+    #   targetDocument, fields, required, reverseName, reverseFields
     constructor: (targetDocument, fields, @required, @reverseName, @reverseFields) ->
       super targetDocument, fields
 

    _.extend @, @constructor.objectify '', null, (doc or {}), (@constructor?.Meta?.fields or {})

  @_Trigger: class
    constructor: (@fields, @trigger) ->
      @fields ?= []


  @_ObservingField: class extends @_Field

  @_TargetedFieldsObservingField: class extends @_ObservingField
    # Arguments:
    #   targetDocument, fields
    constructor: (targetDocument, @fields) ->
      super()

