 
     // MARKS: - Paths
 
-    /// Returns the BSFS base folder path
+    /// The BSFS base folder path
     /// ---
     /// baseFolder/
     ///     - blocks/ all the crypted compressed blocks (classifyed per 3 level of folders)
-    ///     - boxes/<boxUID/ the mounted files
     ///     - tmp/ downloads in progress
-    ///
-    /// - Returns: the base path
-    public func baseFolderPath()->String{
+    public var baseFolderPath:String{
         return NSHomeDirectory()+"/.bsfs/\(_document.UID)"
     }
 
-
-    public func blocksFolderPath()->String{
-        return self.baseFolderPath()+"/blocks"
-    }
-
-
-    public func boxesFolderPath()->String{
-        return self.baseFolderPath()+"/boxes"
+    public var blocksFolderPath:String{
+        return self.baseFolderPath+"/blocks"
+    }
+
+    /// The path correspond is where the Boxes assemble their files.
+    /// The files are destroyed when a box is unmounted.
+    public var boxesFolderPath:String{
+        return Bartleby.getSearchPath(.cachesDirectory)!+"/boxes"
     }
 
 
     //MARK:  - BOX API
 
     /// Mounts the current local box == Assemble all its assemblable nodes
-    /// There is no guarante that the box is not fully up to date
+    /// There is no guarantee that the box is not fully up to date
     ///
     /// - Parameters:
     ///   - boxUID: the Box UID

            if !self._accessors[node.UID]!.contains(where: {$0.UID==accessor.UID}){
                self._accessors[node.UID]!.append(accessor)
            }
            return true
        }else{
            return false

    ///   - node: the node
    ///   - accessor: the accessor
    /// - Returns: false if the current user is not authorized.
    public func wantsAccess(to node:Node,accessor:NodeAccessor)->Bool{
        // The nodeIsUsable() will be called when the file will be usable.
        if node.authorized.contains("*") || node.authorized.contains(self._document.currentUser.UID){
            if self._accessors[node.UID] != nil {
