     BOTTOM_LEFT = 2
     BOTTOM_RIGHT = 3
       
-    findQuadrants = (item) ->
+    findQuadrant = (item) ->
       bounds = I.bounds
       
       x = bounds.x

      y_midpoint = y + halfHeight()
      
      left = item.x <= x_midpoint
      right = item.x + item.width > x_midpoint
      top = item.y <= y_midpoint
      bottom = item.y + item.height > y_midpoint
            
      quadrants = []
      
      if left
        if top
          quadrants.push(TOP_LEFT)
        if bottom
          quadrants.push(BOTTOM_LEFT)
      else
        if top
          quadrants.push(TOP_RIGHT)
        if bottom
          quadrants.push(BOTTOM_RIGHT)
      
      return quadrants
      
    halfWidth = -> (I.bounds.width / 2).floor()     
    halfHeight = -> (I.bounds.height / 2).floor()

          I.children.clear()    
      
      retrieve: (item) ->
        index = findQuadrant(item)
    
        return I.nodes[index]?.retrieve(item) || I.children  
                      
    self
      
