 
   mutating func nativeRemoveObjectForKey(key: KeyType) -> ValueType? {
     var nativeStorage = native
-    var start = nativeStorage._bucket(key)
-    var (index, found) = nativeStorage._find(key, start)
+    var idealBucket = nativeStorage._bucket(key)
+    var (index, found) = nativeStorage._find(key, idealBucket)
 
     // Fast path: if the key is not present, we will not mutate the dictionary,
     // so don't force unique storage.

    }

    let key = nativeStorage.assertingGet(nativeIndex).0
    let start = nativeStorage._bucket(key)
    nativeDeleteImpl(nativeStorage, start: start, offset: nativeIndex.offset)
  }

  mutating func removeAtIndex(index: Index) {

    }
  }

  /// :param: idealBucket The ideal bucket for the element being deleted.
  /// :param: offset The offset of the element that will be deleted.
  mutating func nativeDeleteImpl(
      nativeStorage: NativeStorage, idealBucket: Int, offset: Int
  ) {
    // remove the element
    nativeStorage[offset] = .None
