                    (not (vector? src))))
           (str "src must be a reactive atom or a function, not "
                (pr-str src)))
-  (let [s (if (satisfies? IDeref src)
-            (if (= path [])
-              #(reset! src %2)
-              #(swap! src assoc-in path %2))
-            #(src path %2))]
-    (RCursor. src path s nil nil nil)))
+  (RCursor. src path nil nil nil))
 
 
 

  (-reset! [this new-value]
    (let [oldstate state]
      (._set-state this oldstate new-value)
      (setter path new-value)
      new-value))

  ISwap

                     (let [f (if (satisfies? IDeref ratom)
                               #(get-in @ratom path)
                               #(ratom path))]
                       (cached-reaction f [::cursor ratom path] this)))]
      (._set-state this oldstate newstate)
      newstate))

