diff --git a/www/index.html b/www/index.html
index 85783fe..5203cb1 100644
--- a/www/index.html
+++ b/www/index.html
@@ -1,49 +1,61 @@
 <!-- Material used from: HTML 4.01 specs: http://www.w3.org/TR/html401/ -->
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" 
+          "http://www.w3.org/TR/html4/strict.dtd">
 <html>
 <head>
-	<META http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
-	<title>Clang c-lang parser for LLVM</title>
-	<link type="text/css" rel="stylesheet" href="menu.css" />
-	<link type="text/css" rel="stylesheet" href="content.css" />
+  <META http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
+  <title>"clang" C Language Family Frontend for LLVM</title>
+  <link type="text/css" rel="stylesheet" href="menu.css" />
+  <link type="text/css" rel="stylesheet" href="content.css" />
 </head>
 <body>
-	<!--#include virtual="menu.html.incl"-->
-	<div id="content">
-		<h1>Clang: a C language front-end for LLVM</h1>
-		<h2>About</h2>
-		<p>The goal of the Clang project is to create a new <a href="http://llvm.org/svn/llvm-project/cfe/trunk/LICENSE.TXT">BSD Licensed</a> C, C++, & ObjC front-end for the <a href="http://www.llvm.org/">LLVM</a> compiler.
-		<br><br>
-		<p>In the context of this website, the term Clang actually refers to two things:
-		<p>1) A "code name" for the LLVM compiler front-end.
-		<p>2) A specific library in the LLVM front-end -- in particular the "driver" that makes all the other libraries work together.
-		<br><br>
-		<p>The developers of Clang include contributers from Apple and numerous other volunteers.
-		<h2>Why?</h2>
-		<p>The development of a new front-end was started out of a need -- a need for a compiler that allows better diagnostics, better integration with IDEs, a license that is compatible with commercial products, and a compiler that is easier to develop and maintain.  All of these were motivations for starting work on a new C/C++/ObjC front-end that could meet these needs.
-		<p>An excellent introduction to Clang can be found in the following video lectures:
-		<ul>
-			<li><a href="clang_video-05-25-2007.html">Clang Introduction</a>
-			<li><a href="clang_video-07-25-2007.html">Features and Performance of Clang</a>
-		</ul>
-		<h2>Features/Goals</h2>
-		Some of the goals for the project include the following:
-		<ul>
-			<li>Real-world, production quality compiler.</li>
-			<li>A single unified parser for C/ObjC/C++</li>
-			<li>Language conformance with C, ObjC, C++ (including variants, like C90, C99, etc)</li>
-			<li>GCC compatibility (supports GCC extensions, but allow them to be disabled)</li>
-			<li>Library based architecture with finely crafted C++ APIs</li>
-			<li>High performance</li>
-			<li>Design for integration with IDEs as well as code generation with <a href="http://llvm.org">LLVM</a>.</li>
-			<li><a href="features.html#expressivediags">Expressive diagnostics</a></li>
-			<li>BSD License</li>
-		</ul>
-		Of course this is only a rough outline of the goals and features of Clang.  To get a true sense of what the new LLVM front-end is all about, as well as why you might want to considering using it, see the <a href="features.html">Features</a> section.
-		<h2>Try Clang</h2>
-		If you are a compiler developer and want to try out Clang, then build instructions are available on the <a href="get_involved.html#build">Get Involved</a> page.  Note that clang is still early in development.  If you are looking for source analysis or source-to-source transformation tools, clang is probably a great solution for you.  If you want to use it as a drop in C compiler, it is not yet ready.
-		<h2>Get Involved</h2>
-		If you are interested in working on Clang, then check out the <a href="get_involved.html">Get Involved</a> section.
-	</div>
+  <!--#include virtual="menu.html.incl"-->
+  <div id="content">
+  
+    <h1>clang: a C language family frontend for LLVM</h1>
+    
+    <h2>About</h2>
+    
+    <p>The goal of the Clang project is to create a new <a
+    href="http://llvm.org/svn/llvm-project/cfe/trunk/LICENSE.TXT">BSD
+    licensed</a> C, C++, &amp; ObjC front-end for the <a 
+    href="http://www.llvm.org/">LLVM</a> compiler.</p>
+    
+    <p>In the context of this website, the term Clang actually refers to two 
+    things:</p>
+    
+    <ol>
+    <li> A "code name" for the LLVM compiler front-end.</li>
+    <li> A specific library in the LLVM front-end -- in particular the
+        "driver" that makes all the other libraries work together.</li>
+    </ol>
+
+    <p>The developers of Clang include contributers from Apple and numerous other volunteers.
+    <h2>Why?</h2>
+    <p>The development of a new front-end was started out of a need -- a need for a compiler that allows better diagnostics, better integration with IDEs, a license that is compatible with commercial products, and a compiler that is easier to develop and maintain.  All of these were motivations for starting work on a new C/C++/ObjC front-end that could meet these needs.
+    <p>An excellent introduction to Clang can be found in the following video lectures:
+    <ul>
+      <li><a href="clang_video-05-25-2007.html">Clang Introduction</a>
+      <li><a href="clang_video-07-25-2007.html">Features and Performance of Clang</a>
+    </ul>
+    <h2>Features/Goals</h2>
+    Some of the goals for the project include the following:
+    <ul>
+      <li>Real-world, production quality compiler.</li>
+      <li>A single unified parser for C/ObjC/C++</li>
+      <li>Language conformance with C, ObjC, C++ (including variants, like C90, C99, etc)</li>
+      <li>GCC compatibility (supports GCC extensions, but allow them to be disabled)</li>
+      <li>Library based architecture with finely crafted C++ APIs</li>
+      <li>High performance</li>
+      <li>Design for integration with IDEs as well as code generation with <a href="http://llvm.org">LLVM</a>.</li>
+      <li><a href="features.html#expressivediags">Expressive diagnostics</a></li>
+      <li>BSD License</li>
+    </ul>
+    Of course this is only a rough outline of the goals and features of Clang.  To get a true sense of what the new LLVM front-end is all about, as well as why you might want to considering using it, see the <a href="features.html">Features</a> section.
+    <h2>Try Clang</h2>
+    If you are a compiler developer and want to try out Clang, then build instructions are available on the <a href="get_involved.html#build">Get Involved</a> page.  Note that clang is still early in development.  If you are looking for source analysis or source-to-source transformation tools, clang is probably a great solution for you.  If you want to use it as a drop in C compiler, it is not yet ready.
+    <h2>Get Involved</h2>
+    If you are interested in working on Clang, then check out the <a href="get_involved.html">Get Involved</a> section.
+  </div>
 </body>
 </html>
\ No newline at end of file
diff --git a/www/menu.html.incl b/www/menu.html.incl
index 75df062..3421143 100644
--- a/www/menu.html.incl
+++ b/www/menu.html.incl
@@ -4,7 +4,7 @@
 -->
 	<div id="menu">
 		<div id="main_menu">
-			<a href="http://www.llvm.org/">LLVM Home</a>
+			<a href="http://www.llvm.org/">LLVM Home</a><br>
 			<label>Clang Info</label>
 			<a href="index.html">About</a>
 			<a href="features.html">Features</a>
@@ -24,4 +24,4 @@
 			<a href="http://llvm.org/bugs/">Bug Reports</a>
 			<a href="http://llvm.org/svn/llvm-project/cfe/trunk/">Browse Source</a>
 		</div>
-	</div>
\ No newline at end of file
+	</div>
