   without: (shift, hash, key) ->
     switch @bucket.length
       when 0, 1 then null
-      when 2    then _.detect @bucket, (v) -> not areEqual(v.key, key)
+      when 2    then util.find @bucket, (v) -> not areEqual(v.key, key)
       else           new CollisionNode(hash, this.bucketWithout(key))
 
   toString: -> "CollisionNode(#{@bucket.join(", ")})"

      node.each(func)

  get: (shift, hash, key) ->
    leaf = _.detect @bucket, (v) -> areEqual(v.key, key)
    leaf.get(shift, hash, key) if leaf?

  with: (shift, hash, leaf) ->

    else
      remaining = j for j in [1...@table.length] when j != i and @table[j]
      if remaining.length <= 4
        bitmap = util.reduce(remaining, ((b, j) -> b | (1 << j)), 0)
        array  = @table[j] for j in remaining
        new BitmapIndexedNode(bitmap, array, @size - 1)
      else
