       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 = []
+      index = TOP_LEFT
       
       if left
-        if top
-          quadrants.push(TOP_LEFT)
-        if bottom
-          quadrants.push(BOTTOM_LEFT)
+        if !top
+          index = BOTTOM_LEFT
       else
         if top
-          quadrants.push(TOP_RIGHT)
-        if bottom
-          quadrants.push(BOTTOM_RIGHT)
+          index = TOP_RIGHT
+        else
+          index = BOTTOM_RIGHT
       
-      return quadrants
+      return index
       
     halfWidth = -> (I.bounds.width / 2).floor()     
     halfHeight = -> (I.bounds.height / 2).floor()

          I.children.clear()    
      
      retrieve: (item) ->
        quadrants = findQuadrants(item)
        
        quadrants.each (quadrant) ->
          return I.nodes[quadrant]?.retrieve(item) || I.children  
                      
    self
      

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