   unbind: (ev, callback) ->
     unless ev
       @_callbacks = {}
-      return @
+      return this
 
     list = @_callbacks?[ev]
-    return @ unless list
+    return this unless list
 
     unless callback
       delete @_callbacks[ev]
-      return @
+      return this
 
     for cb, i in list when cb is callback
       list = list.slice()
       list.splice(i, 1)
       @_callbacks[ev] = list
       break
-    @
+    this
 
 Log =
   trace: true

    Object.create(@)

  reload: ->
    return @ if @isNew()
    original = @constructor.find(@id)
    @load(original.attributes())
    original

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

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

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