     # Don't use Backbone's events hash because if subclasses
     # use that more familiar syntax, they'll blow away events
     # defined in this class.
-    $(@el).delegate('.save-button',   'click', _.bind(@save, @))
-    $(@el).delegate('.delete-button', 'click', _.bind(@delete, @))
-    $(@el).delegate('.cancel-button', 'click', _.bind(@cancelEdit, @))
+    @$el.delegate('.save-button',   'click', _.bind(@save, @))
+    @$el.delegate('.delete-button', 'click', _.bind(@delete, @))
+    @$el.delegate('.cancel-button', 'click', _.bind(@cancelEdit, @))
     
     # Begin editing when this resource is clicked
     # unless the user clicked a link or button.
-    $(@el).click (e)=>
+    @$el.click (e)=>
       @edit() if @canEdit() and !$(e.target).isIn('input, button, a, label')
   
   render: ->
     json = _.extend(@model.toJSON(), {options: @templateOptions})
-    $(@el).html @template()(json)
-    $(@el).attr('id', "#{@resource}_#{@model.get('id')}") # e.g. "calendar_5"
+    @$el.html @template()(json)
+    @$el.attr('id', "#{@resource}_#{@model.get('id')}") # e.g. "calendar_5"
     
     @afterRender()
     @

  delete: (e)->
    e?.preventDefault()
    @confirmDelete @resource, =>
      $(@el).removeClass('neat-editable').addClass('deleted')
      
      @model.destroy
        wait: true

    @templateOptions = options.templateOptions ? {}
    @viewPath = @viewPath ? options.viewPath
    @resource = @resource ? window.inflect.singularize(options.resource)
    @$el.addClass(@resource)
    
    @model.bind 'change', @render, @
    
