       @crecords[record.cid] = record
 
     @trigger('refresh', not options.clear and records)
-    @
+    this
 
   @select: (callback) ->
     result = (record for id, record of @records when callback(record))

    for key, value of obj when key not in moduleKeywords
      @::[key] = value
    obj.included?.apply(@)
    @

  @extend: (obj) ->
    throw('extend(obj) requires obj') unless obj
    for key, value of obj when key not in moduleKeywords
      @[key] = value
    obj.extended?.apply(@)
    @

  @proxy: (func) ->
    => func.apply(@, arguments)

    @attributes and= makeArray(@attributes)
    @attributes or=  []
    @unbind()
    this

  @toString: -> "#{@className}(#{@attributes.join(", ")})"

