         - returns: A slice of dictionary up to `upTo`
     */
     public func prefix(upTo end: Index) -> SubSequence {
-        var base = [Key: Value]()
-        let backingPrefix = backingDictionary.prefix(upTo: end.backingIndex)
-
-        for (key, value) in backingPrefix {
-            base[key] = value.value
-        }
-
-        return Slice(base: base, bounds: base.startIndex..<base.endIndex)
+        return Slice(base: self, bounds: self.startIndex..<end)
     }
 
     /**

    public typealias Iterator = Dictionary<Key, Value>.Iterator

    /// The subsequence type.
    public typealias SubSequence =  Dictionary<Key, Value>.SubSequence

    // MARK: Properties


        - returns: A slice of dictionary from `from`
    */
    public func suffix(from start: Index) -> SubSequence {
        return Slice(base: self, bounds: start..<self.endIndex)
    }

    /**
