                 self.delegateNotify(operation, error: error)
             }
         }
+        
+        let dest = self.url(of: toPath)
+        if /* fileExists */ ((try? dest.checkResourceIsReachable()) ?? false) ||
+            ((try? dest.checkPromisedItemIsReachable()) ?? false) {
+            if overwrite {
+                self.removeItem(path: toPath, completionHandler: { _ in
+                    self.operation_queue.addOperation(moveblock)
+                })
+            } else {
+                let e = self.cocoaError(dest.path, code: .fileWriteFileExists)
+                dispatch_queue.async {
+                    completionHandler?(e)
+                }
+                self.delegateNotify(operation, error: e)
+                return nil
+            }
+        } else {
+            self.operation_queue.addOperation(moveblock)
+        }
+        
         return progress
     }
     

        }
    }
    
    /// Removes local copy of file, but spares cloud copy.
    /// - Parameter path: Path of file or directory to be removed from local
    /// - Parameter completionHandler: If an error parameter was provided, a presentable `Error` will be returned.
    open func evictItem(path: String, completionHandler: SimpleCompletionHandler) {
        operation_queue.addOperation {
            do {

        }
    }
    
    /**
     Returns current version of file on this device and all versions of files in user devices.
     - Parameter path: Path of file or directory.
     - Parameter completionHandler: Retrieve current version on this device and all versions available. `currentVersion` will be nil if file doesn't exist. If an error parameter was provided, a presentable `Error` will be returned.
    */
    func versionsOfItem(path: String, completionHandler: @escaping ((_ currentVersion: NSFileVersion?, _ versions: [NSFileVersion], _ error: Error?) -> Void)) {
        NotImplemented()
    }
