     spyOn(@, 'children').andCallThrough()
     spyOn(@, 'addClass').andCallThrough()
     spyOn(@, 'removeClass').andCallThrough()
+    spyOn(@, 'fadeIn').andCallThrough()
+    spyOn(@, 'fadeOut').andCallThrough()
+    spyOn(@, 'css').andCallThrough()
 
   attr: (name) ->
     return @attributes[name]
+
+  removeAttr: (name) ->
+    delete @attributes[name]
   
   setAttr: (name, value) ->
     @attributes[name] = value
   
   data: (name) ->
-    return @data[name]
+    if name
+      return @_data[name]
+    else
+      return @_data
   
   setData: (name, value) ->
-    @data[name] = value
+    @_data[name] = value
 
   html: (value) ->
     if(_.isUndefined(value))

  find: (selector) ->

  closest: (element) ->

  addClass: () ->

  removeClass: () ->

  css: (style) ->
    if @style
      @style = style
    else
      return @style or ''

  append: (html) ->
    if @htmlData
