 
     func parser(parser: NSXMLParser, foundCharacters string: String?) {
         if lazyLoad {
-            println("foundCharacters \(elements.top()): \(elements.count) \(parentStack.count) ... \(parentStack.top().name)")
             if onElementMatch() {
-                println("setting text")
                 let current = parentStack.top()
                 if current.text == nil {
                     current.text = ""

            logElement(elementName, last: true)
            if onElementMatch() {
                if onLazyMatch() {
                    println("DONE")
                    parser.abortParsing()
                    return
                }

                println("popping")
                parentStack.pop()
            }
            elements.pop()

            return false
        }

        for var i = elements.count - 1; i >= 0; i-- {
            if elements.items[i] != parentStack.items[i].name {
                return false
            }
        }

        return true
    }

    func onLazyMatch() -> Bool {
