private void decode()
	{
		int index = 0;
		LinkedHashMap<Integer, String> decodeDictionary = new LinkedHashMap<Integer, String>();
		// initialize dictionary w/ single symbols - Same method as encode, decodeDictionary will contain
		// only single/initial symbols
		for(int i = 0; i < fileContent.length(); i++)
		{
			if(i + 1 == fileContent.length())
			{	
				if(!decodeDictionary.containsValue(fileContent.substring(i)))
					decodeDictionary.put(index++, fileContent.substring(i));
			}
			else 
			{
				if(!decodeDictionary.containsValue(fileContent.substring(i, i + 1)))
					decodeDictionary.put(index++, fileContent.substring(i, i+1));
			}
		}
		
		// start decoding and rebuilding the dictionary
		System.out.println("Decoded Text: ");
		for(int i = 0; i < output.size(); i++)
		{
			// Output Entry E at index i from decodeDictionary
			String e = decodeDictionary.get(output.get(i));
			System.out.print(e);
			
			if(i + 1 < output.size())
			{
				// E'
				String next = decodeDictionary.get(output.get(i+1));
				
				// if entry E' exists add E+first_symbol(E') to decodeDictionary
				if(decodeDictionary.containsValue(next)) 
				{
					if((decodeDictionary.size() < size))
						decodeDictionary.put(index++, e+next.substring(0, 1));
				}
				else // otherwise add E+first_symbol(E)
				{
					if((decodeDictionary.size() < size))
						decodeDictionary.put(index++, e+e.substring(0, 1));
				}
				
			}
			
		}
		System.out.println("");
	}