 				return CNImage(contentsOfFile: fileurl.path)
 			#endif
 		}
-
+		mStorageTable = [:]
 		super.init(packageDirectory: packdir)
+
+		/* Update loader */
+		mValueStorageLoader = {
+			(_ fileurl: URL) -> Any? in
+			return self.getValueStorage(packageDirectory: packdir, fileURL: fileurl)
+		}
 
 		/* Setup categories */
 		addCategory(category: KEResource.ApplicationCategory,	loader: mFileLoader)

			}
		}

		mValueStorageLoader = {
			(_ fileurl: URL) -> Any? in
			do {
				let filepath: String
				if let relpath = CNFilePath.relativePathUnderBaseURL(fullPath: fileurl, basePath: packdir){
					filepath = relpath
				} else {
					CNLog(logLevel: .error, message: "Failed to get file path: \(fileurl.path)", atFunction: #function, inFile: #file)
					filepath = "error.json"
				}
				NSLog("loader: package=\(packdir.path) file=\(filepath)")
				return try KEResource.allocateValueStorage(packageDirectory: packdir, filePath: filepath)
			} catch {
				return nil
			}
		}

		mImageLoader = {
			(_ fileurl: URL) -> Any? in

				CNLog(logLevel: .error, message: "[Error:sub] Unknown case", atFunction: #function, inFile: #file)
			}
		} else {
			//NSLog("No saved file")
		}

		return substorage
