diff --git a/exec/load/filebase.js b/exec/load/filebase.js
index ef5e100c698b701b7a22080fc4d3b92873340e9e..9f8e8bbea8a4a775dc0b599ecc73dfb4bb7ee000 100644
--- a/exec/load/filebase.js
+++ b/exec/load/filebase.js
@@ -1,6 +1,9 @@
 /*
  * Pass a directory code and get back an array of objects for the files
  * in the specified directory.
+ *
+ * This is file is now just an unnecessary shim for the new FileBase class
+ * and should be deprecated.
  * 
  * Similar to filedir.js.
  * 
@@ -8,122 +11,46 @@
  * 
  * base:       Base filename.
  * ext:        Filename extension.
- * datoffset:  Offset in .dat file of file data.
+ * datoffset:  Offset in .dat file of file data. - N/A
  * uldate:     Date uploaded
  * dldate:     Date downloaded(?)
  * credits:    Number of credits(?)
  * desc:       Short description (58 chars max)
  * uploader:   Name of user that uploaded the file.
  * downloaded: Number of times the file has been downloaded.
- * opencount:  I have no idea what this is.
- * misc:       Misc flags... see FM_* below.
+ * opencount:  I have no idea what this is. - N/A
+ * misc:       Misc flags... see FM_* below. - N/A
  * anonymous:  Anonymous upload
- * altpath:    Index into the internal array of alt paths (not visible to JavaScript)
+ * altpath:    Index into the internal array of alt paths (not visible to JavaScript) - N/A
  * extdesc:    May be undefined... extended description.
  * path:       Full path to file.  Undefined if the file doesn't exist or
  *             is in an alt path (since they're not visible to JS).
  */
 
-var FM_EXTDESC = 1;
-var FM_ANON = (1<<1);
-
 function OldFileBase(dir) {
-	var f = new File(format("%s%s.ixb", file_area.dir[dir].data_dir, dir));
-	var dat = new File(format("%s%s.dat", file_area.dir[dir].data_dir, dir));
-	var exb = new File(format("%s%s.exb", file_area.dir[dir].data_dir, dir));
-	var record = null;
 	var ret = [];
-
-	function FileEntry() {
-		var byte;
-
-		function getrec(file, len) {
-			var ret=file.read(len);
-			ret = ret.replace(/[\x03\r\n].*$/,'');
-			return ret;
-		}
-
-		// Read from the IXB file
-		this.base = f.read(8).replace(/ +$/,'');
-		this.ext = f.read(3).replace(/ +$/, '');
-		this.datoffset = f.readBin(2);
-		byte = f.readBin(1);
-		this.datoffset |= (byte<<16);
-		this.uldate = f.readBin(4);
-		this.dldate = f.readBin(4);
-
-		// Read from the DAT file
-		dat.position = this.datoffset;
-		this.credits = parseInt(getrec(dat, 9), 10);
-		this.desc = getrec(dat, 58);
-		dat.readBin(2);	// Should be \r\n
-		this.uploader = getrec(dat, 25);
-		dat.read(5);	// Padding?
-		dat.readBin(2);	// Should be \r\n
-		this.downloaded = parseInt(getrec(dat, 5), 10);
-		dat.readBin(2);	// Should be \r\n
-		this.opencount = parseInt(getrec(dat, 3), 10);
-		dat.readBin(2);	// Should be \r\n
-		this.misc = getrec(dat, 1);
-		if (this.misc.length > 0)
-			this.misc = ascii(this.misc)-32;
-		else
-			this.misc = 0;
-		if (this.misc & FM_ANON)
-			this.anonymous = true;
-		else
-			this.anonymous = false;
-		this.altpath = parseInt(getrec(dat, 2), 16);
-
-		// Read from the EXB file
-		var exbpos = (this.datoffset / 118) * 512;
-		if (exb.is_open && (this.misc & FM_EXTDESC)) {
-			if (exb.length > exbpos) {
-				exb.position = exbpos;
-				this.extdesc = exb.read(512).replace(/\x00.*$/, '');
-			}
-		}
-		if (this.altpath > 0 && file_area.alt_paths !== undefined) {
-			if (file_exists(file_area.alt_paths[this.altpath-1]+this.name))
-				this.path = fullpath(file_area.alt_paths[this.altpath-1]+this.name);
-		}
-		else {
-			if (file_exists(file_area.dir[dir].path+this.name))
-				this.path = fullpath(file_area.dir[dir].path+this.name);
-		}
-	}
-
-	Object.defineProperty(FileEntry.prototype, "name", {
-		enumerable: true,
-		get: function() {
-			return this.ext ? this.base+'.'+this.ext : this.base;
-		}
-	});
-
-	if(!f.exists)
-		return ret;
-	if (!f.open("rb"))
+	var filebase = new FileBase(dir);
+	if(!filebase.open())
 		return ret;
 
-	if(!dat.exists) {
-		f.close();
-		log(LOG_DEBUG, "readIxb: Invalid code or "+dat.name+" does not exist.");
-		return ret;
+	var file_list = filebase.get_list(FileBase.DETAIL.EXTENDED);
+	for(var i = 0; i < file_list.length; i++) {
+		var file = file_list[i];
+		ret.push({
+			name: file.name, 
+			uldate: file.added,
+			dldate: file.last_downloaded,
+			credits: file.cost,
+			desc: file.desc,
+			uploader: file.from,
+			downloaded: file.times_downloaded,
+			extdesc: file.extdesc,
+			anonymous: file.anon,
+			path: filebase.get_path(file.name)
+		});
 	}
-	if (!dat.open("rb")) {
-		log(LOG_DEBUG, "readIxb: Unable to open "+dat.name+".");
-		return ret;
-	}
-
-	exb.open("rb");
-
-	for(var i = 0; f.position+1<f.length ; i++)
-		ret.push(new FileEntry(i));
 
-	f.close();
-	dat.close();
-	if (exb.is_open)
-		exb.close();
+	filebase.close();
 
 	return ret;
 }