diff --git a/PROFuseX.xcodeproj/kelvin.pbxuser b/PROFuseX.xcodeproj/kelvin.pbxuser
index a4ce6fe..0471ce8 100644
--- a/PROFuseX.xcodeproj/kelvin.pbxuser
+++ b/PROFuseX.xcodeproj/kelvin.pbxuser
@@ -104,8 +104,8 @@
 					PBXFileDataSource_Warnings_ColumnID,
 				);
 			};
-			PBXPerProjectTemplateStateSaveDate = 299215102;
-			PBXWorkspaceStateSaveDate = 299215102;
+			PBXPerProjectTemplateStateSaveDate = 319589426;
+			PBXWorkspaceStateSaveDate = 319589426;
 		};
 		perUserProjectItems = {
 			B6272A9811D5AC5E0073C73A /* PBXTextBookmark */ = B6272A9811D5AC5E0073C73A /* PBXTextBookmark */;
@@ -117,13 +117,10 @@
 			B6272B0E11D691320073C73A /* PBXTextBookmark */ = B6272B0E11D691320073C73A /* PBXTextBookmark */;
 			B6272B0F11D691320073C73A /* PBXTextBookmark */ = B6272B0F11D691320073C73A /* PBXTextBookmark */;
 			B6272B1011D691320073C73A /* PBXTextBookmark */ = B6272B1011D691320073C73A /* PBXTextBookmark */;
-			B6272B1111D691320073C73A /* XCBuildMessageTextBookmark */ = B6272B1111D691320073C73A /* XCBuildMessageTextBookmark */;
+			B6272B1111D691320073C73A /* PBXTextBookmark */ = B6272B1111D691320073C73A /* PBXTextBookmark */;
 			B6272B1311D691320073C73A /* PBXTextBookmark */ = B6272B1311D691320073C73A /* PBXTextBookmark */;
 			B6272B1411D691320073C73A /* PBXTextBookmark */ = B6272B1411D691320073C73A /* PBXTextBookmark */;
-			B6272B1511D691320073C73A /* PBXTextBookmark */ = B6272B1511D691320073C73A /* PBXTextBookmark */;
 			B6272B1611D691320073C73A /* PBXTextBookmark */ = B6272B1611D691320073C73A /* PBXTextBookmark */;
-			B6272B1711D691320073C73A /* PBXTextBookmark */ = B6272B1711D691320073C73A /* PBXTextBookmark */;
-			B6272B7711D6A3C30073C73A /* PBXTextBookmark */ = B6272B7711D6A3C30073C73A /* PBXTextBookmark */;
 			B63EFC2611A2D5A400C90DCE /* PBXTextBookmark */ = B63EFC2611A2D5A400C90DCE /* PBXTextBookmark */;
 			B63EFC3211A2D5A400C90DCE /* PBXTextBookmark */ = B63EFC3211A2D5A400C90DCE /* PBXTextBookmark */;
 			B63EFDA011A4488200C90DCE /* PBXTextBookmark */ = B63EFDA011A4488200C90DCE /* PBXTextBookmark */;
@@ -139,10 +136,10 @@
 			B63EFEA011A488C200C90DCE /* PBXTextBookmark */ = B63EFEA011A488C200C90DCE /* PBXTextBookmark */;
 			B63EFEA111A488C200C90DCE /* PBXTextBookmark */ = B63EFEA111A488C200C90DCE /* PBXTextBookmark */;
 			B63EFEA811A488C200C90DCE /* PBXTextBookmark */ = B63EFEA811A488C200C90DCE /* PBXTextBookmark */;
-			B656AE2411A84FA400AB578A /* PBXTextBookmark */ = B656AE2411A84FA400AB578A /* PBXTextBookmark */;
+			B64E9723130C8C860072B07E /* PBXTextBookmark */ = B64E9723130C8C860072B07E /* PBXTextBookmark */;
+			B64E972813103CAF0072B07E /* PBXTextBookmark */ = B64E972813103CAF0072B07E /* PBXTextBookmark */;
 			B656AE2611A84FA400AB578A /* PBXTextBookmark */ = B656AE2611A84FA400AB578A /* PBXTextBookmark */;
 			B65CFB6911B495790024A2D9 /* PBXTextBookmark */ = B65CFB6911B495790024A2D9 /* PBXTextBookmark */;
-			B65CFB6A11B495790024A2D9 /* PBXTextBookmark */ = B65CFB6A11B495790024A2D9 /* PBXTextBookmark */;
 			B6E5F0DD11A60726000AD141 /* PBXTextBookmark */ = B6E5F0DD11A60726000AD141 /* PBXTextBookmark */;
 			B6E5F0F211A73144000AD141 /* PBXTextBookmark */ = B6E5F0F211A73144000AD141 /* PBXTextBookmark */;
 			B6E5F11211A73340000AD141 /* PBXTextBookmark */ = B6E5F11211A73340000AD141 /* PBXTextBookmark */;
@@ -156,7 +153,6 @@
 			B6F3657E11AE255B0045E114 /* PBXTextBookmark */ = B6F3657E11AE255B0045E114 /* PBXTextBookmark */;
 			B6F3665411B190370045E114 /* PBXTextBookmark */ = B6F3665411B190370045E114 /* PBXTextBookmark */;
 			B6F3665C11B194AC0045E114 /* PBXTextBookmark */ = B6F3665C11B194AC0045E114 /* PBXTextBookmark */;
-			B6F366C211B1A28C0045E114 /* PBXTextBookmark */ = B6F366C211B1A28C0045E114 /* PBXTextBookmark */;
 			B6F366C411B1A28C0045E114 /* PBXTextBookmark */ = B6F366C411B1A28C0045E114 /* PBXTextBookmark */;
 			B6F366C611B1A28C0045E114 /* PBXTextBookmark */ = B6F366C611B1A28C0045E114 /* PBXTextBookmark */;
 			B6F366C711B1A28C0045E114 /* PBXTextBookmark */ = B6F366C711B1A28C0045E114 /* PBXTextBookmark */;
@@ -164,8 +160,6 @@
 			B6F366C911B1A28C0045E114 /* PBXTextBookmark */ = B6F366C911B1A28C0045E114 /* PBXTextBookmark */;
 			B6F366CA11B1A28C0045E114 /* PBXTextBookmark */ = B6F366CA11B1A28C0045E114 /* PBXTextBookmark */;
 			B6F366CB11B1A28C0045E114 /* PBXTextBookmark */ = B6F366CB11B1A28C0045E114 /* PBXTextBookmark */;
-			B6F366CC11B1A28C0045E114 /* PBXTextBookmark */ = B6F366CC11B1A28C0045E114 /* PBXTextBookmark */;
-			B6F366D911B1A7A70045E114 /* PBXTextBookmark */ = B6F366D911B1A7A70045E114 /* PBXTextBookmark */;
 			B6F3675411B316D10045E114 /* PBXTextBookmark */ = B6F3675411B316D10045E114 /* PBXTextBookmark */;
 			B6F3677C11B326580045E114 /* PBXTextBookmark */ = B6F3677C11B326580045E114 /* PBXTextBookmark */;
 			B6F3677D11B326580045E114 /* PBXTextBookmark */ = B6F3677D11B326580045E114 /* PBXTextBookmark */;
@@ -175,7 +169,6 @@
 			B6F367AE11B337A70045E114 /* PBXTextBookmark */ = B6F367AE11B337A70045E114 /* PBXTextBookmark */;
 			B6F3684911B44D090045E114 /* PBXTextBookmark */ = B6F3684911B44D090045E114 /* PBXTextBookmark */;
 			B6F3684A11B44D090045E114 /* PBXTextBookmark */ = B6F3684A11B44D090045E114 /* PBXTextBookmark */;
-			B6F3684B11B44D090045E114 /* PBXTextBookmark */ = B6F3684B11B44D090045E114 /* PBXTextBookmark */;
 		};
 		sourceControlManager = B63EFA6711A093C200C90DCE /* Source Control */;
 		userBuildSettings = {
@@ -334,17 +327,17 @@
 		vrLen = 679;
 		vrLoc = 0;
 	};
-	B6272B1111D691320073C73A /* XCBuildMessageTextBookmark */ = {
+	B6272B1111D691320073C73A /* PBXTextBookmark */ = {
 		isa = PBXTextBookmark;
 		comments = "'Device' has not been declared";
 		fRef = B6272B1211D691320073C73A /* Bitmap.h */;
-		fallbackIsa = XCBuildMessageTextBookmark;
 		rLen = 1;
 		rLoc = 21;
 		rType = 1;
 	};
 	B6272B1211D691320073C73A /* Bitmap.h */ = {
 		isa = PBXFileReference;
+		lastKnownFileType = sourcecode.c.h;
 		name = Bitmap.h;
 		path = ./ProDOS/Bitmap.h;
 		sourceTree = "<group>";
@@ -369,16 +362,6 @@
 		vrLen = 740;
 		vrLoc = 0;
 	};
-	B6272B1511D691320073C73A /* PBXTextBookmark */ = {
-		isa = PBXTextBookmark;
-		fRef = B6272AA611D5AE0C0073C73A /* Bitmap.h */;
-		name = "Bitmap.h: 21";
-		rLen = 77;
-		rLoc = 226;
-		rType = 0;
-		vrLen = 735;
-		vrLoc = 0;
-	};
 	B6272B1611D691320073C73A /* PBXTextBookmark */ = {
 		isa = PBXTextBookmark;
 		fRef = B63EFAB611A098C400C90DCE /* BlockCache.cpp */;
@@ -389,26 +372,6 @@
 		vrLen = 718;
 		vrLoc = 403;
 	};
-	B6272B1711D691320073C73A /* PBXTextBookmark */ = {
-		isa = PBXTextBookmark;
-		fRef = B63EFAB711A098C400C90DCE /* BlockCache.h */;
-		name = "BlockCache.h: 1";
-		rLen = 0;
-		rLoc = 0;
-		rType = 0;
-		vrLen = 909;
-		vrLoc = 148;
-	};
-	B6272B7711D6A3C30073C73A /* PBXTextBookmark */ = {
-		isa = PBXTextBookmark;
-		fRef = B63EFAB711A098C400C90DCE /* BlockCache.h */;
-		name = "BlockCache.h: 1";
-		rLen = 0;
-		rLoc = 0;
-		rType = 0;
-		vrLen = 928;
-		vrLoc = 129;
-	};
 	B63EFA6711A093C200C90DCE /* Source Control */ = {
 		isa = PBXSourceControlManager;
 		fallbackIsa = XCSourceControlManager;
@@ -544,9 +507,9 @@
 	};
 	B63EFAB711A098C400C90DCE /* BlockCache.h */ = {
 		uiCtxt = {
-			sepNavIntBoundsRect = "{{0, 0}, {838, 754}}";
+			sepNavIntBoundsRect = "{{0, 0}, {838, 741}}";
 			sepNavSelRange = "{0, 0}";
-			sepNavVisRange = "{129, 928}";
+			sepNavVisRange = "{129, 890}";
 		};
 	};
 	B63EFAB811A098C400C90DCE /* ConcreteBlockCache.cpp */ = {
@@ -716,58 +679,6 @@
 			sepNavVisRange = "{687, 1732}";
 		};
 	};
-	B63EFC9911A35F7200C90DCE /* fuse_pascal.cpp */ = {
-		isa = PBXFileReference;
-		fileEncoding = 4;
-		lastKnownFileType = sourcecode.cpp.cpp;
-		name = fuse_pascal.cpp;
-		path = /Users/kelvin/Projects/PROFuseX/fuse_pascal.cpp;
-		sourceTree = "<absolute>";
-		uiCtxt = {
-			sepNavIntBoundsRect = "{{0, 0}, {838, 4082}}";
-			sepNavSelRange = "{4414, 0}";
-			sepNavVisRange = "{3977, 1077}";
-		};
-	};
-	B63EFC9B11A35F7B00C90DCE /* newfs_pascal.cpp */ = {
-		isa = PBXFileReference;
-		fileEncoding = 4;
-		lastKnownFileType = sourcecode.cpp.cpp;
-		name = newfs_pascal.cpp;
-		path = /Users/kelvin/Projects/PROFuseX/newfs_pascal.cpp;
-		sourceTree = "<absolute>";
-		uiCtxt = {
-			sepNavIntBoundsRect = "{{0, 0}, {1009, 4381}}";
-			sepNavSelRange = "{4492, 0}";
-			sepNavVisRange = "{2844, 1735}";
-		};
-	};
-	B63EFC9D11A35F8200C90DCE /* fuse_pascal_ops.cpp */ = {
-		isa = PBXFileReference;
-		fileEncoding = 4;
-		lastKnownFileType = sourcecode.cpp.cpp;
-		name = fuse_pascal_ops.cpp;
-		path = /Users/kelvin/Projects/PROFuseX/fuse_pascal_ops.cpp;
-		sourceTree = "<absolute>";
-		uiCtxt = {
-			sepNavIntBoundsRect = "{{0, 0}, {701, 6448}}";
-			sepNavSelRange = "{855, 6}";
-			sepNavVisRange = "{18, 1415}";
-		};
-	};
-	B63EFC9F11A35F8F00C90DCE /* apfm.cpp */ = {
-		isa = PBXFileReference;
-		fileEncoding = 4;
-		lastKnownFileType = sourcecode.cpp.cpp;
-		name = apfm.cpp;
-		path = /Users/kelvin/Projects/PROFuseX/apfm.cpp;
-		sourceTree = "<absolute>";
-		uiCtxt = {
-			sepNavIntBoundsRect = "{{0, 0}, {1009, 14040}}";
-			sepNavSelRange = "{13109, 0}";
-			sepNavVisRange = "{11908, 1651}";
-		};
-	};
 	B63EFCC811A366C800C90DCE /* MappedFile.h */ = {
 		isa = PBXFileReference;
 		lastKnownFileType = sourcecode.c.h;
@@ -1047,6 +958,26 @@
 		vrLen = 834;
 		vrLoc = 0;
 	};
+	B64E9723130C8C860072B07E /* PBXTextBookmark */ = {
+		isa = PBXTextBookmark;
+		fRef = B63EFAB711A098C400C90DCE /* BlockCache.h */;
+		name = "BlockCache.h: 1";
+		rLen = 0;
+		rLoc = 0;
+		rType = 0;
+		vrLen = 890;
+		vrLoc = 129;
+	};
+	B64E972813103CAF0072B07E /* PBXTextBookmark */ = {
+		isa = PBXTextBookmark;
+		fRef = B63EFAB711A098C400C90DCE /* BlockCache.h */;
+		name = "BlockCache.h: 1";
+		rLen = 0;
+		rLoc = 0;
+		rType = 0;
+		vrLen = 890;
+		vrLoc = 129;
+	};
 	B656AE0211A84F5800AB578A /* fuse_pascal */ = {
 		activeExec = 0;
 		executables = (
@@ -1080,16 +1011,6 @@
 		sourceDirectories = (
 		);
 	};
-	B656AE2411A84FA400AB578A /* PBXTextBookmark */ = {
-		isa = PBXTextBookmark;
-		fRef = B63EFC9D11A35F8200C90DCE /* fuse_pascal_ops.cpp */;
-		name = "fuse_pascal_ops.cpp: 1";
-		rLen = 0;
-		rLoc = 0;
-		rType = 0;
-		vrLen = 813;
-		vrLoc = 0;
-	};
 	B656AE2611A84FA400AB578A /* PBXTextBookmark */ = {
 		isa = PBXTextBookmark;
 		fRef = B63EFAA211A094E000C90DCE /* RawDevice.h */;
@@ -1163,16 +1084,6 @@
 		vrLen = 800;
 		vrLoc = 2262;
 	};
-	B65CFB6A11B495790024A2D9 /* PBXTextBookmark */ = {
-		isa = PBXTextBookmark;
-		fRef = B6F3647B11AB361D0045E114 /* xattr.cpp */;
-		name = "xattr.cpp: 330";
-		rLen = 6;
-		rLoc = 6657;
-		rType = 0;
-		vrLen = 829;
-		vrLoc = 5931;
-	};
 	B6E5F0DD11A60726000AD141 /* PBXTextBookmark */ = {
 		isa = PBXTextBookmark;
 		fRef = B63EFAB811A098C400C90DCE /* ConcreteBlockCache.cpp */;
@@ -1250,19 +1161,6 @@
 		vrLen = 1126;
 		vrLoc = 442;
 	};
-	B6F3647B11AB361D0045E114 /* xattr.cpp */ = {
-		isa = PBXFileReference;
-		fileEncoding = 4;
-		lastKnownFileType = sourcecode.cpp.cpp;
-		name = xattr.cpp;
-		path = /Users/kelvin/Projects/PROFuseX/xattr.cpp;
-		sourceTree = "<absolute>";
-		uiCtxt = {
-			sepNavIntBoundsRect = "{{0, 0}, {838, 5512}}";
-			sepNavSelRange = "{6657, 6}";
-			sepNavVisRange = "{5931, 829}";
-		};
-	};
 	B6F3647F11AB36260045E114 /* xattr */ = {
 		activeExec = 0;
 		executables = (
@@ -1372,7 +1270,7 @@
 		continueAfterActions = 0;
 		countType = 0;
 		delayBeforeContinue = 0;
-		fileReference = B63EFC9F11A35F8F00C90DCE /* apfm.cpp */;
+		fileReference = B6272A8E11D5AC3C0073C73A /* apfm.cpp */;
 		functionName = "action_rm(int argc, char **argv, Pascal::VolumeEntry *volume)";
 		hitCount = 0;
 		ignoreCount = 0;
@@ -1435,16 +1333,6 @@
 		vrLen = 951;
 		vrLoc = 1203;
 	};
-	B6F366C211B1A28C0045E114 /* PBXTextBookmark */ = {
-		isa = PBXTextBookmark;
-		fRef = B63EFC9B11A35F7B00C90DCE /* newfs_pascal.cpp */;
-		name = "newfs_pascal.cpp: 227";
-		rLen = 0;
-		rLoc = 5474;
-		rType = 0;
-		vrLen = 1282;
-		vrLoc = 4530;
-	};
 	B6F366C411B1A28C0045E114 /* PBXTextBookmark */ = {
 		isa = PBXTextBookmark;
 		fRef = B63EFACB11A09DAA00C90DCE /* MappedFile.cpp */;
@@ -1515,26 +1403,6 @@
 		vrLen = 613;
 		vrLoc = 128;
 	};
-	B6F366CC11B1A28C0045E114 /* PBXTextBookmark */ = {
-		isa = PBXTextBookmark;
-		fRef = B63EFC9F11A35F8F00C90DCE /* apfm.cpp */;
-		name = "apfm.cpp: 755";
-		rLen = 0;
-		rLoc = 22959;
-		rType = 0;
-		vrLen = 884;
-		vrLoc = 15404;
-	};
-	B6F366D911B1A7A70045E114 /* PBXTextBookmark */ = {
-		isa = PBXTextBookmark;
-		fRef = B63EFC9911A35F7200C90DCE /* fuse_pascal.cpp */;
-		name = "fuse_pascal.cpp: 195";
-		rLen = 0;
-		rLoc = 4414;
-		rType = 0;
-		vrLen = 1077;
-		vrLoc = 3977;
-	};
 	B6F3675411B316D10045E114 /* PBXTextBookmark */ = {
 		isa = PBXTextBookmark;
 		fRef = B63EFBEC11A244EE00C90DCE /* FileEntry.cpp */;
@@ -1619,19 +1487,6 @@
 		vrLen = 874;
 		vrLoc = 0;
 	};
-	B6F3682111B430870045E114 /* newfs_prodos.cpp */ = {
-		isa = PBXFileReference;
-		fileEncoding = 4;
-		lastKnownFileType = sourcecode.cpp.cpp;
-		name = newfs_prodos.cpp;
-		path = /Users/kelvin/Projects/PROFuseX/newfs_prodos.cpp;
-		sourceTree = "<absolute>";
-		uiCtxt = {
-			sepNavIntBoundsRect = "{{0, 0}, {1009, 3185}}";
-			sepNavSelRange = "{266, 0}";
-			sepNavVisRange = "{0, 1849}";
-		};
-	};
 	B6F3682411B431AC0045E114 /* newfs_prodos */ = {
 		activeExec = 0;
 		executables = (
@@ -1685,14 +1540,4 @@
 		vrLen = 803;
 		vrLoc = 0;
 	};
-	B6F3684B11B44D090045E114 /* PBXTextBookmark */ = {
-		isa = PBXTextBookmark;
-		fRef = B6F3682111B430870045E114 /* newfs_prodos.cpp */;
-		name = "newfs_prodos.cpp: 1";
-		rLen = 0;
-		rLoc = 0;
-		rType = 0;
-		vrLen = 1184;
-		vrLoc = 0;
-	};
 }
diff --git a/PROFuseX.xcodeproj/kelvin.perspectivev3 b/PROFuseX.xcodeproj/kelvin.perspectivev3
index 8a7e152..c78c1ec 100644
--- a/PROFuseX.xcodeproj/kelvin.perspectivev3
+++ b/PROFuseX.xcodeproj/kelvin.perspectivev3
@@ -278,13 +278,13 @@
 							<key>PBXSmartGroupTreeModuleOutlineStateSelectionKey</key>
 							<array>
 								<array>
-									<integer>19</integer>
-									<integer>17</integer>
+									<integer>39</integer>
+									<integer>24</integer>
 									<integer>0</integer>
 								</array>
 							</array>
 							<key>PBXSmartGroupTreeModuleOutlineStateVisibleRectKey</key>
-							<string>{{0, 0}, {318, 941}}</string>
+							<string>{{0, 164}, {318, 941}}</string>
 						</dict>
 						<key>PBXTopSmartGroupGIDs</key>
 						<array/>
@@ -329,7 +329,7 @@
 										<key>_historyCapacity</key>
 										<integer>0</integer>
 										<key>bookmark</key>
-										<string>B6272B7711D6A3C30073C73A</string>
+										<string>B64E972813103CAF0072B07E</string>
 										<key>history</key>
 										<array>
 											<string>B63EFC2611A2D5A400C90DCE</string>
@@ -352,7 +352,6 @@
 											<string>B6E5F11211A73340000AD141</string>
 											<string>B6E5F13A11A74F2B000AD141</string>
 											<string>B6E5F18211A76B74000AD141</string>
-											<string>B656AE2411A84FA400AB578A</string>
 											<string>B656AE2611A84FA400AB578A</string>
 											<string>B6F3647111AB35FE0045E114</string>
 											<string>B6F3649E11AB59190045E114</string>
@@ -362,7 +361,6 @@
 											<string>B6F3657E11AE255B0045E114</string>
 											<string>B6F3665411B190370045E114</string>
 											<string>B6F3665C11B194AC0045E114</string>
-											<string>B6F366C211B1A28C0045E114</string>
 											<string>B6F366C411B1A28C0045E114</string>
 											<string>B6F366C611B1A28C0045E114</string>
 											<string>B6F366C711B1A28C0045E114</string>
@@ -370,8 +368,6 @@
 											<string>B6F366C911B1A28C0045E114</string>
 											<string>B6F366CA11B1A28C0045E114</string>
 											<string>B6F366CB11B1A28C0045E114</string>
-											<string>B6F366CC11B1A28C0045E114</string>
-											<string>B6F366D911B1A7A70045E114</string>
 											<string>B6F3675411B316D10045E114</string>
 											<string>B6F3677C11B326580045E114</string>
 											<string>B6F3677D11B326580045E114</string>
@@ -381,9 +377,7 @@
 											<string>B6F367AE11B337A70045E114</string>
 											<string>B6F3684911B44D090045E114</string>
 											<string>B6F3684A11B44D090045E114</string>
-											<string>B6F3684B11B44D090045E114</string>
 											<string>B65CFB6911B495790024A2D9</string>
-											<string>B65CFB6A11B495790024A2D9</string>
 											<string>B6272A9811D5AC5E0073C73A</string>
 											<string>B6272A9911D5AC5E0073C73A</string>
 											<string>B6272A9A11D5AC5E0073C73A</string>
@@ -396,9 +390,8 @@
 											<string>B6272B1111D691320073C73A</string>
 											<string>B6272B1311D691320073C73A</string>
 											<string>B6272B1411D691320073C73A</string>
-											<string>B6272B1511D691320073C73A</string>
 											<string>B6272B1611D691320073C73A</string>
-											<string>B6272B1711D691320073C73A</string>
+											<string>B64E9723130C8C860072B07E</string>
 										</array>
 									</dict>
 									<key>SplitCount</key>
@@ -412,18 +405,18 @@
 							<key>GeometryConfiguration</key>
 							<dict>
 								<key>Frame</key>
-								<string>{{0, 0}, {899, 535}}</string>
+								<string>{{0, 0}, {899, 526}}</string>
 								<key>RubberWindowFrame</key>
 								<string>182 101 1239 1000 0 0 1920 1178 </string>
 							</dict>
 							<key>Module</key>
 							<string>PBXNavigatorGroup</string>
 							<key>Proportion</key>
-							<string>535pt</string>
+							<string>526pt</string>
 						</dict>
 						<dict>
 							<key>Proportion</key>
-							<string>419pt</string>
+							<string>428pt</string>
 							<key>Tabs</key>
 							<array>
 								<dict>
@@ -437,7 +430,9 @@
 									<key>GeometryConfiguration</key>
 									<dict>
 										<key>Frame</key>
-										<string>{{10, 27}, {899, 392}}</string>
+										<string>{{10, 27}, {899, 401}}</string>
+										<key>RubberWindowFrame</key>
+										<string>182 101 1239 1000 0 0 1920 1178 </string>
 									</dict>
 									<key>Module</key>
 									<string>XCDetailModule</string>
@@ -491,9 +486,7 @@
 									<key>GeometryConfiguration</key>
 									<dict>
 										<key>Frame</key>
-										<string>{{10, 27}, {899, 392}}</string>
-										<key>RubberWindowFrame</key>
-										<string>182 101 1239 1000 0 0 1920 1178 </string>
+										<string>{{10, 27}, {899, 401}}</string>
 									</dict>
 									<key>Module</key>
 									<string>PBXBuildResultsModule</string>
@@ -521,11 +514,11 @@
 			</array>
 			<key>TableOfContents</key>
 			<array>
-				<string>B6272A9F11D5AC5E0073C73A</string>
+				<string>B64E9725130C8C860072B07E</string>
 				<string>1CA23ED40692098700951B8B</string>
-				<string>B6272AA011D5AC5E0073C73A</string>
+				<string>B64E9726130C8C860072B07E</string>
 				<string>B63EFA6111A093C200C90DCE</string>
-				<string>B6272AA111D5AC5E0073C73A</string>
+				<string>B64E9727130C8C860072B07E</string>
 				<string>1CA23EDF0692099D00951B8B</string>
 				<string>1CA23EE00692099D00951B8B</string>
 				<string>1CA23EE10692099D00951B8B</string>
@@ -715,7 +708,6 @@
 	<integer>5</integer>
 	<key>WindowOrderList</key>
 	<array>
-		<string>B6272B1911D691320073C73A</string>
 		<string>/Users/kelvin/Projects/PROFuseX/PROFuseX.xcodeproj</string>
 	</array>
 	<key>WindowString</key>
diff --git a/PROFuseX.xcodeproj/project.pbxproj b/PROFuseX.xcodeproj/project.pbxproj
index 69606f7..944545d 100644
--- a/PROFuseX.xcodeproj/project.pbxproj
+++ b/PROFuseX.xcodeproj/project.pbxproj
@@ -169,6 +169,7 @@
 		B656AE0311A84F5800AB578A /* fuse_pascal */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; path = fuse_pascal; sourceTree = BUILT_PRODUCTS_DIR; };
 		B656AEFE11AA0F8C00AB578A /* NibbleTest.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = NibbleTest.cpp; sourceTree = "<group>"; };
 		B656AF0311AA105500AB578A /* NibbleTest */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; path = NibbleTest; sourceTree = BUILT_PRODUCTS_DIR; };
+		B659C142131368BA0058DC9C /* Device.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = Device.h; sourceTree = "<group>"; };
 		B6F3648011AB36260045E114 /* xattr */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; path = xattr; sourceTree = BUILT_PRODUCTS_DIR; };
 		B6F3651A11ADD0280045E114 /* VolumeEntry.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = VolumeEntry.h; sourceTree = "<group>"; };
 		B6F3651B11ADD0280045E114 /* FileEntry.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = FileEntry.h; sourceTree = "<group>"; };
@@ -295,6 +296,7 @@
 		B63EFA9411A094E000C90DCE /* Device */ = {
 			isa = PBXGroup;
 			children = (
+				B659C142131368BA0058DC9C /* Device.h */,
 				B63EFA9511A094E000C90DCE /* BlockDevice.cpp */,
 				B63EFA9611A094E000C90DCE /* BlockDevice.h */,
 				B63EFA9711A094E000C90DCE /* DavexDiskImage.cpp */,