diff --git a/exec/addfiles.js b/exec/addfiles.js
index 72e01086da84b85f98bbcb97933cba20224d30eb..35899a27acb4a83b69e47007c99343e537885428 100755
--- a/exec/addfiles.js
+++ b/exec/addfiles.js
@@ -151,7 +151,7 @@ for(var d = 0; d < dir_list.length; d++) {
 		continue;
 	}
 
-	var name_list = filebase.get_file_names();
+	var name_list = filebase.get_names();
 	// Convert to uppercase
 	for(var i = 0; i < name_list.length; i++) {
 		name_list[i] = name_list[i].toUpperCase();
@@ -198,7 +198,7 @@ for(var d = 0; d < dir_list.length; d++) {
 		file.extdesc = lfexpand(file.extdesc);
 		if(verbosity > 1)
 			print(JSON.stringify(file));
-		var exists = name_list.indexOf(filebase.get_file_name(file.name).toUpperCase()) >= 0;
+		var exists = name_list.indexOf(filebase.get_name(file.name).toUpperCase()) >= 0;
 		if(exists && !options.update) {
 			if(verbosity)
 				print("already added");
@@ -217,7 +217,7 @@ for(var d = 0; d < dir_list.length; d++) {
 			file.desc = datestr(archive_date(path)) + " " + file.desc;
 		file.cost = file_size(path);
 		if(exists) {
-			var hash = filebase.hash_file(file.name);
+			var hash = filebase.hash(file.name);
 			if(hash) {
 				file.size = hash.size;
 				file.crc16 = hash.crc16;
@@ -225,7 +225,7 @@ for(var d = 0; d < dir_list.length; d++) {
 				file.md5 = hash.md5;
 				file.sha1 = hash.sha1;
 			}
-			if(!filebase.update_file(file.name, file, options.diz)) {
+			if(!filebase.update(file.name, file, options.diz)) {
 				alert("Error " + filebase.last_error + " updating " + file.name);
 			} else {
 				print("Updated " + file.name);
@@ -233,7 +233,7 @@ for(var d = 0; d < dir_list.length; d++) {
 			}
 		} else {
 			// Add file here:
-			if(!filebase.add_file(file, options.diz)) {
+			if(!filebase.add(file, options.diz)) {
 				alert("Error " + filebase.last_error + " adding " + file.name);
 			} else {
 				print("Added " + file.name);
diff --git a/exec/archive.js b/exec/archive.js
index 771a6cb79acac0b26eee59259e3f9e9ceecdcd42..f924821b2dfe482b3b2b0a5702e84634ac2afa2b 100755
--- a/exec/archive.js
+++ b/exec/archive.js
@@ -1,6 +1,6 @@
 // Deal with archive files using Synchronet v3.19 Archive class
 
-// Install with 'jsexec archive.js install'
+// Install "Viewable File Types" using 'jsexec archive.js install'
 
 "use strict";
 
diff --git a/exec/filelist.js b/exec/filelist.js
index 3e1614db0d99fa2a9b5ee11bb151ada18cbc7e81..a1b17607b581f11fa631da1d9440598e65f62725 100755
--- a/exec/filelist.js
+++ b/exec/filelist.js
@@ -26,6 +26,10 @@ for(var i = 0; i < argc; i++) {
 			fmt = "json";
 			continue;
 		}
+		if(opt == "arc") {
+			fmt = "arc";
+			continue;
+		}
 		if(opt.indexOf("fmt=") == 0) {
 			fmt = opt.slice(4);
 			continue;
@@ -72,6 +76,26 @@ for(var i in dir_list) {
 for(var i in output)
 	print(output[i]);
 
+function archive_contents(path, list)
+{
+	var output = [];
+	for(var i = 0; i < list.length; i++) {
+		var fname = path + list[i];
+		print(fname);
+		output.push(fname);
+		var contents;
+		try {
+			contents = Archive(fname).list();
+		} catch(e) {
+//			alert(e);
+			continue;
+		}
+		for(var j = 0; j < contents.length; j++)
+			output.push(contents[j].name + " " + contents[j].size);
+	}
+	return output;
+}
+
 function listfiles(dir_code, filespec, detail, fmt, props)
 {
 	var base = new FileBase(dir_code);
@@ -79,13 +103,15 @@ function listfiles(dir_code, filespec, detail, fmt, props)
 		return base.last_error;
 	var output = [];
 	if(detail < 0) {
-		var list = base.get_file_names(filespec, options.sort);
+		var list = base.get_names(filespec, options.sort);
 		if(fmt == 'json')
 			output = JSON.stringify(list, null, 4).split('\n');
+		else if(fmt == 'arc')
+			output = archive_contents(file_area.dir[dir_code].path, list);
 		else
 			output = list;
 	} else {
-		var list = base.get_file_list(filespec, detail, options.sort);
+		var list = base.get_list(filespec, detail, options.sort);
 		if(fmt == 'json')
 			output.push(JSON.stringify(list, null, 4));
 		else {
diff --git a/exec/hashfile.js b/exec/hashfile.js
index c8783af3df4d0ad8c4774d9fd854cbbcc7b21fef..02100b6d8f2fd756d0c17f9b9c52fec5db4be49f 100755
--- a/exec/hashfile.js
+++ b/exec/hashfile.js
@@ -21,7 +21,7 @@ if(!filebase.open()) {
 	exit(1);
 }
 
-print(JSON.stringify(filebase.hash_file(argv[1]), null, 4));
+print(JSON.stringify(filebase.hash(argv[1]), null, 4));
 
 print(filebase.last_error);
 /*
diff --git a/exec/postfile.js b/exec/postfile.js
index 3b6dacfe5204dc6a08b5939a7f3482b628b42f1b..fafed631327116fa4dabdea2bc5759acc9a4e41a 100755
--- a/exec/postfile.js
+++ b/exec/postfile.js
@@ -22,7 +22,7 @@ if(!filebase.open()) {
 	exit(1);
 }
 
-var name_list = filebase.get_file_names();
+var name_list = filebase.get_names();
 
 while(!file_exists(dir.path + file.name) && !js.terminated) {
 	if(file.name)
@@ -35,7 +35,7 @@ while(!file_exists(dir.path + file.name) && !js.terminated) {
 	file.name = prompt("File name");
 }
 
-if(filebase.get_file(file.name)) {
+if(filebase.get(file.name)) {
 	alert("File '" + file.name + "' already added.");
 	exit(1);
 }
@@ -49,7 +49,7 @@ while(!file.from && !js.terminated) {
 }
 
 print("Adding " + file.name + " to " + filebase.file);
-if(filebase.add_file(file))
+if(filebase.add(file))
 	print(format("File (%s) added successfully to: ", file.name) + code);
 else
 	alert("Error " + filebase.last_error + " adding file to: " + code);
diff --git a/exec/rehashfiles.js b/exec/rehashfiles.js
index 4ecb919272ebf765b9d4380dbe5300e12356a432..19347183f6fbb63626d360b60fe32253c13fa15e 100755
--- a/exec/rehashfiles.js
+++ b/exec/rehashfiles.js
@@ -21,11 +21,11 @@ if(!filebase.open()) {
 	exit(1);
 }
 
-var file_list = filebase.get_file_list();
+var file_list = filebase.get_list();
 for(var i = 0; i < file_list.length; i++) {
 	var file = file_list[i];
 	print(JSON.stringify(file, null, 4));
-	var hash = filebase.hash_file(file.name);
+	var hash = filebase.hash(file.name);
 	if(hash == null) {
 		alert("hash is null");
 		break;
@@ -35,7 +35,7 @@ for(var i = 0; i < file_list.length; i++) {
 	file.crc32 = hash.crc32;
 	file.md5 = hash.md5;
 	file.sha1 = hash.sha1;
-	if(!filebase.update_file(file.name, file)) {
+	if(!filebase.update(file.name, file)) {
 		alert(filebase.status + " " + filebase.last_error);
 		break;
 	}
diff --git a/exec/tickit.js b/exec/tickit.js
index 1ebc7ff6ec5ff15d8179a69303650a6a7f8fab79..c3d84258e079d819e331a901d836aec86ca82da1 100644
--- a/exec/tickit.js
+++ b/exec/tickit.js
@@ -688,7 +688,7 @@ function import_file_list(dir, list, uploader)
 		var file = list[i];
 		file.from = uploader;
 		log(LOG_INFO, "Adding file (" + file.name + ") to: " + dir);
-		if(!fb.add_file(file, use_diz_always)) {
+		if(!fb.add(file, use_diz_always)) {
 			fb.close();
 			return "Error " + fb.last_error + " adding file to: " + dir;
 		} else
diff --git a/exec/updatefiles.js b/exec/updatefiles.js
index af3ff2ca97cd757f50a49ca4a156878f285d4ec1..4eb370ec3805f0523bcdda69855bf5076e375f6e 100755
--- a/exec/updatefiles.js
+++ b/exec/updatefiles.js
@@ -7,7 +7,7 @@ if(!fbase.open()) {
 	alert("failed to open base");
 	exit(1);
 }
-var file_list = fbase.get_file_list(argv[1] || "*", FileBase.DETAIL.NORM);
+var file_list = fbase.get_list(argv[1] || "*", FileBase.DETAIL.NORM);
 for(var i in file_list) {
 	var file = file_list[i];
 	var copy = JSON.parse(JSON.stringify(file));
@@ -18,7 +18,7 @@ for(var i in file_list) {
 	}
 	if(JSON.stringify(copy) != JSON.stringify(file)) {
 		alert("changed");
-		print(fbase.update_file(copy.name, file));
+		print(fbase.update(copy.name, file));
 		print(fbase.status);
 		print(fbase.last_error);
 	}