         return this
 
       toggleClass: (cls) -> @each (i, el) -> u.dom.toggleClass el, cls
+
       click: (cb) -> @bind "click", cb
+
       on: (n,cb) -> @bind(n,cb)
+
       bind: (n, cb) -> @each (i, el, capture) -> el.addEventListener n, cb, capture
 
       parent: ->
         e = @get(0)
         return new uSet(e.parentNode) if e
+
+      find: (sel) ->
+        els = []
+        for el in @all()
+          nodes = u.dom.queryAll(sel,el)
+          els = els.concat(nodes)
+        return new uSet(els)
+
+      siblings: (sel) ->
+        return @parent().find(sel) if sel
+        return @parent().children()
+
+      filter: (cb) ->
+        newlist = []
+        els = @all()
+        for e in els
+          newlist.push(e) if cb.call(e,e)
+        return new uSet(newlist)
 
       next: ->
         e = @get(0)

          @length = a.length
        else if a instanceof Node
          @el = a
        else if typeof a is "string"
          @els = u.dom.queryAll(a)
        else

        if @el i is 0
          return @el

      all: ->
        return @els if @els
        return [ @el ] if @el
        return []

      children: (i) ->
        return new uSet(@get(i)) if i
        return new uSet(@els) if @els

      first: -> @children(0)

