       return false unless token.isEmpty()
     true
   filter: (el) ->
+    $el = $ el
     childTokens = []
     for token in @childTokens
       if token instanceof Chunk
-        unless token.isSame el
+        unless token.isSame $el
           continue
         else
           childTokens.push token
       else
-        token.filter el
+        token.filter $el
         continue if token.isEmpty()
         childTokens.push token
     @childTokens = childTokens

    $messages = $el.filter('.message').add($el.find('.message'))
    if $messages.length is 0
      $messages = $el.parents '.message'
      # console.log $messages.length
      return if $messages.length is 0
      root = @tokenizeMessages $messages
      # console.log 'before filter:', root.toString()
      root.filter $el
      # console.log 'after filter :', root.toString()
      return root

    @tokenizeMessages $messages

    super()
    @_$el = $ el
    @_isEmpty = false
  isSame: ($el) ->
    for el in $el
      return true if $.contains(el, @_$el[0]) or el is @_$el[0]
    false
  isEmpty: -> @_isEmpty
  toString: -> @constructor.name
  toMarkdown: -> @identifier
