diff --git a/team-leaders.php b/team-leaders.php
index 89f81fb..8d571ef 100644
--- a/team-leaders.php
+++ b/team-leaders.php
@@ -6,68 +6,79 @@
 
 ob_start();
 ?>
-    <div id="maincontent">
-	<div id="midcolumn">
-        <h1><?= $pageTitle ?></h1>
-        
-      <p>The Eclipse Technology Project is managed by a small group known as the 
-        Eclipse Technology Project Management Committee (<a href="technology-charter.html#PMC">PMC</a>). 
-        The PMC holds weekly conference calls (see 
-        <a href="pmc-minutes.php">the minutes</a>) and holds (some)
-        discussions on <a href="mailto:technology-pmc@eclipse.org">technology-pmc@eclipse.org</a> mailing list.
-        The work of the Project is organized into subprojects. Each subproject 
-        has a leader who has overall responsibility for its success. Large subprojects 
-        are further divided into component teams, each of who has a leader that 
-        is responsible for its overall success. We have listed just the PMC 
-        <!-- and 
+<div id="maincontent">
+<div id="midcolumn">
+<h1><?= $pageTitle ?></h1>
+
+<p>The Eclipse Technology Project is managed by a small group known as
+the Eclipse Technology Project Management Committee (<a
+	href="technology-charter.html#PMC">PMC</a>). The PMC holds weekly
+conference calls (see <a href="pmc-minutes.php">the minutes</a>) and
+holds (some) discussions on <a href="mailto:technology-pmc@eclipse.org">technology-pmc@eclipse.org</a>
+mailing list. The work of the Project is organized into subprojects.
+Each subproject has a leader who has overall responsibility for its
+success. Large subprojects are further divided into component teams,
+each of who has a leader that is responsible for its overall success. We
+have listed just the PMC <!-- and 
         subproject leaders 
-        -->
-        here but you will encounter many dedicated eclipse 
-        project committers and developers in the <a href="/newsgroups/" target="_top">newsgroups</a> 
-        and <a href="/mail/" target="_top">mailing lists</a>.</p>
+        --> here but you will encounter many dedicated eclipse project
+committers and developers in the <a href="/newsgroups/" target="_top">newsgroups</a>
+and <a href="/mail/" target="_top">mailing lists</a>.</p>
 
-<h2>Project 
-      Management Committee</h2>
+<h2>Project Management Committee</h2>
 
-	<ul class="midlist">
-	<li><b>Wayne Beaton, Eclipse Foundation (wayne at eclipse.org)</b> (PMC 
-    lead)<br/>
-    Wayne is the Evangelist for the Eclipse Foundation. His primary role is that of
-    informing people of all the exciting things that are happening in the many Eclipse
-    Projects. He is particularly fond of test-first development and Extreme Programming,
-    but is quite happy with many lightweight development methodologies. In past lives,
-    he has worked for The Object People, BEA, and IBM. In his &lt;sarcasm&gt;copious&lt;/sarcasm&gt; 
-    spare time Wayne spends time driving his kids to hockey practice and studying martial arts.</li>
-    
+<ul class="midlist">
+	<li><b>Wayne Beaton, Eclipse Foundation (wayne at eclipse.org)</b> (PMC
+	lead)<br />
+	Wayne is the Evangelist for the Eclipse Foundation. His primary role is
+	that of informing people of all the exciting things that are happening
+	in the many Eclipse Projects. He is particularly fond of test-first
+	development and Extreme Programming, but is quite happy with many
+	lightweight development methodologies. In past lives, he has worked for
+	The Object People, BEA, and IBM. In his
+	&lt;sarcasm&gt;copious&lt;/sarcasm&gt; spare time Wayne spends time
+	driving his kids to hockey practice and studying martial arts.</li>
+
 	<li><b>Bjorn Freeman-Benson, Eclipse Foundation (bjorn at eclipse.org)</b><br>
-      Bjorn is the Director, Open Source Process at the 
-    Eclipse Foundation. Throughout his meandering career, Bjorn has always been interested 
-      programming languages and IDEs in spite of occassionally wandering away 
-      from their one true path. Bjorn has worked for OTI, Amazon.com, Rational, 
-      and Gemstone, among others. He is also happy to expound at length about 
-      his love of flying.</li>
-      
-      <li><b>John Duimovich, IBM (john_duimovich at ca.ibm.com)</b><br>
-      John Duimovich, IBM distinguished engineer, has been the lead designer and 
-      implementor for OTI/IBM&#146;s virtual machine technology for the past ten 
-      years. He has designed virtual machines for a wide range of platforms, from 
-      the implementations for embedded and real time systems to those for IBM 
-      mainframe systems. John has played a key role in the development of ENVY/Smalltalk, 
-      VA/Micro Edition, and VA/Java Java IDEs. In addition to serving on the Eclipse 
-      Technology PMC, John serves as the lead of the Eclipse Tools PMC.<br/></li>
-      
-      <li><b>Gunnar Wagenknecht</b><br/>
-      Gunnar is a great guy who really needs to provide us with a bio. Gunnar 
-      represents the Technology PMC on the <a href="http://wiki.eclipse.org/Architecture_Council">Eclipse Architecture Council</a>.</li>
-      
-      </ul>
+	Bjorn is the Director, Open Source Process at the Eclipse Foundation.
+	Throughout his meandering career, Bjorn has always been interested
+	programming languages and IDEs in spite of occassionally wandering away
+	from their one true path. Bjorn has worked for OTI, Amazon.com,
+	Rational, and Gemstone, among others. He is also happy to expound at
+	length about his love of flying.</li>
+
+	<li><b>John Duimovich, IBM (john_duimovich at ca.ibm.com)</b><br>
+	John Duimovich, IBM distinguished engineer, has been the lead designer
+	and implementor for OTI/IBM&#146;s virtual machine technology for the
+	past ten years. He has designed virtual machines for a wide range of
+	platforms, from the implementations for embedded and real time systems
+	to those for IBM mainframe systems. John has played a key role in the
+	development of ENVY/Smalltalk, VA/Micro Edition, and VA/Java Java IDEs.
+	In addition to serving on the Eclipse Technology PMC, John serves as
+	the lead of the Eclipse Tools PMC.<br />
+	</li>
+
+	<li><b>Gunnar Wagenknecht, AGETO (gunnar at wagenknecht.org)</b><br />
+	Gunnar is a software engineer who loves server and application
+	architectures especially those involving Equinox. In his primary role
+	at AGETO he is thrilled to work on open source software, emerging
+	platforms and technologies, and to help software companies understand
+	Eclipse and Equinox and execute on their business objectives in an open
+	source context. He has been a member of the Eclipse Community since
+	its beginning. He loves chatting about Eclipse, fishing, diving
+	and his family and other things that matters over a good beer or a
+	glass of dry, barrel aged red wine. Gunnar represents the Technology
+	PMC on the <a href="http://wiki.eclipse.org/Architecture_Council">Eclipse
+	Architecture Council</a>.</li>
+
+</ul>
 </div>
 </div>
 <?php
-	# Paste your HTML content between the EOHTML markers!	
-	$html = ob_get_contents();
-	ob_end_clean();
+# Paste your HTML content between the EOHTML markers!
+$html = ob_get_contents();
+ob_end_clean();
 
-	# Generate the web page
-	$App->generatePage($theme, $Menu, $Nav, $pageAuthor, $pageKeywords, $pageTitle, $html);
+# Generate the web page
+$App->generatePage($theme, $Menu, $Nav, $pageAuthor, $pageKeywords, $pageTitle, $html);
 ?>
