private static void initializeFreeSpaceMgnt() {
		try {
			//initialize free block bitmap
			int noOfBlocksBitmap = 4; 					// hard code: 2000sized bitmap will require 4 blocks of 500
			Block superBlock = new Block(homeDir.toString() + "/TransDisk/" + String.format("%05d", Disk.superBlockAddress) + ".txt","r");
			superBlock.readLine();
			int[] freeBlockBitmapNo = new int[noOfBlocksBitmap];
			String tempStr = superBlock.readLine();
			for(int i = 0; i < noOfBlocksBitmap; i++)
				freeBlockBitmapNo[i] = Integer.parseInt(tempStr.substring(i, i+1));
			
			byte[][] freeSpaceBitmapContent = new byte[4][];
			for(int i = 0; i < 4; i++)
				freeSpaceBitmapContent[i] = new byte[Disk.maxBlockSize];
			
			int i = 0;
			for(int k = 0; k < 4; k++) {
				for(int j = i % Disk.maxBlockSize; j < Disk.maxBlockSize; j++, i++) {
					if(i <= Disk.inodeEndBlock)				//all blocks up to last Inode block are considered to be system used and not available for user data
						freeSpaceBitmapContent[k][j] = 49;	//in ASCII 49 is 1
					else
						freeSpaceBitmapContent[k][j] = 48;
				}
			}
			
			for(i = 0; i < 4; i++) {
				Block bitmapBlock = new Block(homeDir.toString() + "/TransDisk/" + String.format("%05d", freeBlockBitmapNo[i]) + ".txt","rw");
				bitmapBlock.write(freeSpaceBitmapContent[i]);
				bitmapBlock.close();
			}
			
			//initialize free inodes bitmap
			System.out.println(superBlock.getFilePointer());
			int freeInodeBitmapNo = superBlock.read() - 48;
			System.out.println(superBlock.getFilePointer());
			byte freeInodeContent[] = new byte[(Disk.inodeEndBlock- Disk.inodeStartBlock + 1)*4];
			freeInodeContent[0] = freeInodeContent[1] = freeInodeContent[2] = 49;					//blocking Inodes
			for(i = 3; i < (Disk.inodeEndBlock - Disk.inodeStartBlock + 1)*4; i++) {
				freeInodeContent[i] = 48;
			}
			Block freeInodeBitmapBlk = new Block(homeDir.toString() + "/TransDisk/" + String.format("%05d", freeInodeBitmapNo) + ".txt", "rw");
			freeInodeBitmapBlk.write(freeInodeContent);
			freeInodeBitmapBlk.close();
			superBlock.close();
		} catch (FileNotFoundException e) {
			e.printStackTrace();
		} catch (IOException e) {
			e.printStackTrace();
		}
	}