diff --git a/src/site/apt/todo.apt b/src/site/apt/todo.apt
new file mode 100644
index 0000000..970b3a7
--- /dev/null
+++ b/src/site/apt/todo.apt
@@ -0,0 +1,9 @@
+ -----
+Documentation Needed
+ -----
+ -----
+
+Documentation Needed
+
+  This document has not yet been written. If you would like to contribute to the Maven documentation, see the instructions at
+  ... TODO: link to contributing page ....
diff --git a/src/site/site.xml b/src/site/site.xml
index ff0f63d..b639ca1 100644
--- a/src/site/site.xml
+++ b/src/site/site.xml
@@ -1,5 +1,6 @@
 <?xml version="1.0" encoding="ISO-8859-1"?>
 <project name="Maven">
+  <!-- TODO: inherited publish, banner, skin -->
   <bannerLeft>
     <name>Maven</name>
     <src>images/apache-maven-project-2.png</src>
@@ -8,22 +9,17 @@
   <bannerRight>
     <src>images/maven-logo-2.gif</src>
   </bannerRight>
-  <publishDate format="dd MMM yyyy" />
+  <publishDate format="dd MMM yyyy" position="right" />
   <skin>
     <groupId>org.apache.maven.skins</groupId>
     <artifactId>maven-stylus-skin</artifactId>
   </skin>
   <body>
-    <links>
+    <!-- TODO: inherited breadcrumbs, head, link menu -->
+    <breadcrumbs>
       <item name="Apache" href="http://www.apache.org/"/>
-      <item name="Maven 1.x" href="http://maven.apache.org/maven-1.x"/>
-      <item name="Maven 2.x" href="http://maven.apache.org/"/>
-      <item name="Continuum" href="http://maven.apache.org/continuum"/>
-      <item name="SCM" href="http://maven.apache.org/scm"/>
-      <item name="Wagon" href="http://maven.apache.org/wagon"/>
-      <item name="JXR" href="http://maven.apache.org/jxr"/>
-      <item name="Doxia" href="http://maven.apache.org/doxia"/>
-    </links>
+      <item name="Maven" href="http://maven.apache.org/"/>
+    </breadcrumbs>
 
     <head>
       <script src="http://www.google-analytics.com/urchin.js" type="text/javascript">
@@ -31,91 +27,94 @@
       <script type="text/javascript">
         _uacct = "UA-140879-1";
         urchinTracker();
-		function expand( item ) {
-			var expandIt = document.getElementById( item );
-			if( expandIt.style.display == "block" ) {
-				expandIt.style.display = "none";
-				expandIt.parentNode.className = "collapsed";
-			} else {
-				expandIt.style.display = "block";
-				expandIt.parentNode.className = "expanded";
-			}
-		}
-	  </script>
+      </script>
     </head>
 
+<!-- TODO: incorporate, remove, etc
+    <menu name="Documentation">
+      <item name="Getting Started" href="/guides/getting-started/index.html"/>
+      <item name="Guides" href="/guides/index.html"/>
+      <item name="Examples" href="/examples/index.html"/>
+      <item name="Plug-ins" href="/plugins/index.html"/>
+      <item name="User Contributed" href="http://docs.codehaus.org/display/MAVENUSER/FAQs"/>      
+      <item name="Where is it?" href="/where-is-it.html"/>
+      <item name="Reference" href="/ref/current/index.html"/>
+    </menu>
+
+      <item name="General Information" href="/about.html"/>
+      <item name="For Maven 1.0 Users" href="/maven1.html"/>
+      <item name="For Other Projects" href="/project-faq.html"/>
+      <item name="How to Help" href="/guides/development/guide-helping.html"/>
+-->
+
     <menu name="Get Maven">
       <item name="Download" href="/download.html"/>
       <item name="Release Notes" href="/release-notes.html"/>
-      <item name="Tools">
-        <item name="Eclipse Plug-in" href="/eclipse-plugin.html"/>
-        <item name="Netbeans Module" href="/netbeans-module.html"/>      
-      </item>
-	</menu>
-
-    <menu name="Documentation">
-      <item name="Quick Start" href="/quick.html" />
-	  <item name="User Guides">
-        <!-- item name="Concepts">
-		  	<item name="POM" href="/concepts.html#pom" />
-			<item name="Artifacts" href="/concepts.html#artifacts" />
-			<item name="Lifecycle" href="/concepts.html#lifecycle" />
-			<item name="Repositories" href="/concepts.html#repositories" />
-			<item name="Plugins" href="/concepts.html#plugins" />
-			<item name="Conventions" href="/concepts.html#conventions" />
-			<item name="Archetypes" href="/concepts.html#archetypes" />
-			<item name="Multimodule" href="/concepts.html#multimodule" />
-			<item name="Sites" href="/concepts.html#sites" />
-			<item name="Reports" href="/concepts.html#reports" />
-		</item -->
-        <item name="Getting Started" href="/guides/getting-started/index.html" />
-	    <!-- item name="Build Cookbook" href="/" / -->
-	    <item name="POM Reference" href="/pom.html" />
-	    <item name="Profiles Reference" href="/pom.html#Profiles" />
-	    <item name="Settings Reference" href="/settings.html" />
-	    <item name="Wiki" href="http://docs.codehaus.org/display/MAVENUSER" /> 
-	  </item>
-
-	  <item name="Plugin Developer Guides">
-	    <item name="Your First Mojo" href="/guides/plugin/guide-java-plugin-development.html" />
-	    <!-- item name="Plugin Cookbook" href="/" / -->
-	    <item name="Mojo API" href="/developers/mojo-api-specification.html" />
-	    <!-- item name="Maven API" href="/" / -->
-	  </item>
-
-	  <item name="Plugins">
-	    <item name="By Category" href="/plugins/index.html" />
-	    <!-- item name="By Host" href="/" / -->
-	    <item name="Search" href="http://www.mvnrepository.com/" />
-	  </item>
-
-  	  <item name="Documentation Index">
-	    <item name="By Category" href="/guides/index.html" />
-	    <!-- item name="Alphabetical" href="/" / -->
-	  </item>
-
-	  <item name="Books and Articles" href="/articles.html" />
-	</menu>
-
-	<menu name="Community">
-	  <item name="Community Overview" href="/community.html"/>
-      <item name="How to Contribute" href="/guides/development/guide-helping.html"/>
-      <item name="Maven Repository">
-		<item name="How to Help" href="/guides/mini/guide-maven-evangelism.html" />
-        <item name="Central Repo" href="http://repo1.maven.org/maven2/" />
-        <item name="Codehaus Repo" href="http://repository.codehaus.org/" />
-      </item>
-	  <item name="Getting Support" href="/mail-lists.html" />
     </menu>
 
-    <menu name="About">
+    <!-- TODO: Candidate for chopping, or folding menu -->
+    <menu name="About Maven">
       <item name="What is Maven?" href="/what-is-maven.html"/>
       <item name="Features" href="/maven-features.html"/>
-      <item name="FAQ" href="/general.html"/>
+      <item name="FAQ" href="/general.html"/> <!-- TODO: check this is for non-users, not a technical FAQ -->
+      <item name="Getting Support" href="todo.html" />
       <item name="Powered By" href="/powered-by-m2.html"/>
+      <item name="Books and Articles" href="/articles.html" />
     </menu>
 
-<!-- The "Project Documentation" section detracts from the Documentation above -->
-<!--    ${reports} -->
+    <menu name="Documentation">
+      <item name="Builder Centre" href="todo.html" />
+      <item name="User Centre" href="todo.html" collapse="true">
+        <item name="Concepts" href="todo.html" /> <!-- TODO: POM, artifacts, lifecycle, repositories, plugins, conventions, archetypes, multimodule, sites, reports - each a high level description with links into guides -->
+        <item name="Getting Started Guide" href="todo.html" />
+        <item name="Trail 1" href="todo.html" /> <!-- TODO: some good trail ideas in John's proposal - need to go back to email to get them. Trails might need to be a page rather than listed here depending on quantity. Do we need to support more depth in navigation? -->
+        <item name="Trail 2" href="todo.html" />
+        <item name="Build Cookbook" href="todo.html" />
+        <item name="Settings Reference" href="todo.html" /> <!-- TODO: all references should be collected under another area instead/as well, reconsider -->
+        <item name="POM Reference" href="todo.html" />
+        <item name="Profiles Reference" href="todo.html" />
+      </item>
+      <item name="Plugin Developer Centre" href="todo.html" collapse="true">
+        <item name="Plugin Concepts" href="todo.html" />
+        <item name="Writing your first Mojo" href="todo.html" />
+        <item name="Mojo API Reference" href="todo.html" />
+        <item name="Plugin Cookbook" href="todo.html" />
+        <item name="Maven API Reference" href="todo.html" />
+      </item>
+      <item name="Maven Developer Centre" href="todo.html" collapse="true">
+        <!-- TODO: under documentation? Review structure under here, aim for consistency -->
+        <!-- TODO .... -->
+        <item name="Continuous Integration" href="/continuous-integration.html"/>
+      </item>
+      <item name="Maven Repository Centre" href="todo.html" collapse="true">
+        <item name="How to upload" href="/repository/upload.html" />
+        <item name="How to partner" href="/repository/partner.html" />
+        <item name="How to mirror" href="/repository/mirror.html" />
+      </item>
+      <item name="Index (category)" href="todo.html" />
+      <item name="Index (alphabetical)" href="todo.html" />
+    </menu>
+
+    <menu name="Get Maven Plugins">
+      <item name="By Host" href="todo.html" />
+      <item name="By Category" href="todo.html" />
+      <item name="By Phase" href="todo.html" />
+    </menu>
+
+    <menu name="IDE Integration">
+      <item name="Eclipse" href="/eclipse-plugin.html"/>
+      <item name="Netbeans" href="/netbeans-module.html"/>      
+    </menu>
+
+    <menu name="Maven Projects" inherit="bottom">
+      <item name="Maven 1.x" href="http://maven.apache.org/maven-1.x"/>
+      <item name="Continuum" href="http://maven.apache.org/continuum"/>
+      <item name="SCM" href="http://maven.apache.org/scm"/>
+      <item name="Wagon" href="http://maven.apache.org/wagon"/>
+      <item name="JXR" href="http://maven.apache.org/jxr"/>
+      <item name="Doxia" href="http://maven.apache.org/doxia"/>
+    </menu>
+
+    <menu ref="reports" />
   </body>
 </project>
diff --git a/src/site/xdoc/index.xml b/src/site/xdoc/index.xml
index d232d62..210789d 100644
--- a/src/site/xdoc/index.xml
+++ b/src/site/xdoc/index.xml
@@ -5,133 +5,140 @@
     <author email="brett@apache.org">Brett Porter</author>
   </properties>
   <body>
+    <div id="downloadbox">
+      <!-- TODO: add news below this box -->
+      <h5>Get Maven 2.0.4</h5>
+      <p>
+        <a href="download.html">
+          <img valign="top" src="images/folder-open.gif" border="0" alt="" title="download"/>
+          Download
+        </a>
+        Maven 2.0.4
+        <small>(1.1Mb)</small>
+        <span style="font-size: smaller">
+          <br/>
+          <a href="download.html#requirements">System Requirements</a>
+          <br/>
+          <a href="download.html#installation">Installation Instructions</a>
+          <br/>
+          <a href="release-notes.html">Release Notes</a>
+        </span>
+      </p>
+      <ul>
+      <!-- TODO: these break rendering - no <p> tags rendered inside <div> afterwards
+        <li>
+          <a href="download.html#requirements">System Requirements</a>
+        </li>
+        <li>
+          <a href="download.html#installation">Installation Instructions</a>
+        </li>
+        <li>
+          <a href="release-notes.html">Release Notes</a>
+        </li>
+-->
+      </ul>
+      <p>
+        <a href="download.html">
+          <!-- TODO: get this image from web, put in images folder -->
+          <img valign="top" src="images/folder-open.gif" border="0" alt="" title="download"/>
+          Download
+        </a>
+        Maven 2.0.4 Tasks for Ant
+        <small>(870k)</small>
+      </p>
+      <!-- TODO: reloate - does this need to be in the Navigation?
+      <ul>
+        <li>
+          <a href="/ant-tasks.html">Documentation</a>
+        </li>
+      </ul>                                                        -->
+      <!-- TODO: what about pointing to older releases? Maven 2.0.x (x < 4) and Maven 1.x? -->
+      <!-- TODO: what about downloads for Continuum, etc.? Would be good to have one big download page -->
+    </div>
     <section name="Welcome to Maven">
-      <div id="downloadbox">
-        <h5>Get Maven 2.0.4</h5>
-        <p>
-          <a href="download.html">
-            <img valign="top" src="http://maven.apache.org/images/folder-open.gif" border="0" alt="" title="download"/>
-            Download
-          </a>
-          Maven 2.0.4
-          <small>(1.1Mb)</small>
-        </p>
-        <ul>
-          <li>
-            <a href="download.html#requirements">System Requirements</a>
-          </li>
-          <li>
-            <a href="download.html#installation">Installation Instructions</a>
-          </li>
-          <li>
-            <a href="release-notes.html">Release Notes</a>
-          </li>                         
-          <li>
-            <a href="guides/getting-started/index.html">Getting Started</a>
-          </li>
-          <li>
-            <a href="guides/index.html">Documentation</a>
-          </li>          
-        </ul>
-        <p>
-          <a href="download.html">
-            <img valign="top" src="http://maven.apache.org/images/folder-open.gif" border="0" alt="" title="download"/>
-            Download
-          </a>
-          Maven 2.0.4 Tasks for Ant
-          <small>(870k)</small>
-        </p>
-        <ul>
-          <li>
-            <a href="/ant-tasks.html">Documentation</a>
-          </li>
-        </ul>
-      </div>
+
+      <!-- TODO: I reckon it's time for a new description -->
       <p>
         Maven is a software project management and comprehension tool. Based on the concept of a project object model
         (POM), Maven can manage a project's build, reporting and documentation from a central piece of information.
       </p>
       <p>
-        <h4>Maven Documentation</h4>
+        If you think that Maven could help your project, you can find out more information about in the "About Maven"
+        section of the navigation. This includes an in-depth description of <a href="what-is-maven.html">what Maven is</a>,
+        a <a href="features.html">list of some of its main features</a>, a set of <a href="general.html">frequently
+        asked questions about what Maven is</a>, and references to a small number of the other projects that are
+        <a href="powered-by-m2.html">already using Maven</a>.
+      </p>
+      <h3>Learning about Maven</h3>
+      <p>
+        <!-- TODO: this could be the big button type thing instead of a list of links -->
+        This site is separated into the following sections, depending on how you'd like to use Maven:
+      </p>
+      <!-- TODO: use CSS -->
+      <table>
+        <tr><td><span style="white-space:nowrap; font-weight: bold; font-size: 1.25em"><a href="todo.html">Builder Centre</a></span></td>
+          <td>information for those needing to build a project that uses Maven</td></tr>
+        <tr><td><span style="white-space:nowrap; font-weight: bold; font-size: 1.25em"><a href="todo.html">User Centre</a></span></td>
+          <td>information for those wanting to use Maven to build their project, including a "10 minute test" that gives
+          a practical overview of Maven's main features in just 10 minutes</td></tr>
+        <tr><td><span style="white-space:nowrap; font-weight: bold; font-size: 1.25em"><a href="todo.html">Plugin Developer Centre</a></span></td>
+          <td>information for those who may or may not be using Maven, but want to provide a plugin for shared
+          functionality or to accompany their own product or toolset</td></tr>
+        <tr><td><span style="white-space:nowrap; font-weight: bold; font-size: 1.25em"><a href="todo.html">Maven Developer Centre</a></span></td>
+          <td>information for those who are currently developers, or interested in becoming developers of the Maven
+          project itself.</td></tr>
+        <tr><td><span style="white-space:nowrap; font-weight: bold; font-size: 1.25em"><a href="todo.html">Maven Repository Centre</a></span></td>
+          <td>information for those who may or may not use, but are interested in getting project metadata into the repository.</td></tr>
+      </table>
+      <p>
+        Each guide is divided into a number of trails to get you started on a particular topic, and includes a
+        reference area and a "cookbook" of common examples.
       </p>
       <p>
-        All the documentation for Maven is in the form of guides
-        which can all be found <a href="guides/index.html">here</a>.
-      </p>            
+        You can access the guides at any time from the left navigation.
+      </p>
+      <h3>Documentation Index</h3>
       <p>
-        <h4>About Maven 2.0</h4>
+        If you are looking for a quick reference, you can use the documentation index. It is available in both
+        <a href="todo.html">alphabetical</a> and <a href="todo.html">categorical</a> listing formats.
+      </p>
+      <h3>Plugins</h3>
+      <p>
+        Maven functionality is provided by plugins. For an explanation of how plugins work, and basic information on how
+        to use a plugin, see the <a href="todo.html">introduction to plugins</a> in the Users Centre.
       </p>
       <p>
-        Maven 2.0 is a rewrite of the popular Maven application to achieve a number of goals, and to provide a stable
-        basis to take it into the future.
+        For detailed information on just some of the plugins available for Maven, see the <a href="todo.html">plugin
+        list</a>. <!-- TODO: link to the by-category list -->
+      </p>
+      <h3>Converting from a different Build System</h3>
+      <p>
+        If you are currently using a different build system, there are options for converting from that to Maven 2
+        either partially or completely. These guides also give an overview of the differences between Maven and the
+        other build system. The following guides are available in the Users Centre:
       </p>
       <ul>
-        <li>
-          <i>
-            <a href="what-is-maven.html">What is Maven?</a>
-          </i>
-        </li>
-        <li>
-          <i>What are the
-            <a href="maven-features.html">features of Maven 2.0</a>
-            ?
-          </i>
-        </li>
-        <li>
-          <i>Where is the
-            <a href="guides/index.html">Documentation</a>
-            ?
-          </i>
-        </li>
-        <li>
-          <i>Tell me about the
-            <a href="about.html#m2-goals">goals of Maven 2.0</a>
-          </i>
-        </li>
-        <li>
-          <i>Can I
-            <a href="about.html#get-involved">get involved</a>
-            ?
-          </i>
-        </li>
-        <li>
-          <i>Where do I
-            <a href="about.html#get-help">get help</a>
-            with Maven 2.0?
-          </i>
-        </li>
+        <li><a href="todo.html">Converting from Ant to Maven 2</a></li>
+        <li><a href="todo.html">Converting from Maven 1.x to Maven 2</a></li>
+        <li><a href="todo.html">Adding Maven 2 to an IDE based build</a></li>
       </ul>
+      <h3>How to Get Support</h3>
       <p>
-        <h4>Information for Maven 1.0 Users</h4>
+        Support for Maven is available in a variety of different forms.
       </p>
       <p>
-        Maven 1.0 users will likely have a lot of questions about Maven 2.0 and how it will impact the future of Maven
-        1.0.
+        To get started, search the documentation, the <a href="todo.html">wiki</a>, <a href="issue-tracking.html">issue
+        tracker</a>, or the <a href="mail-lists.html">mailing list archives</a> to see if the problem has been solved or
+        reported before.
       </p>
-      <ul>
-        <li>
-          <i>
-            <a href="maven1.html#">What's changed?</a>
-          </i>
-        </li>
-        <li>
-          <i>
-            <a href="maven1.html#m1-or-m2">Should I use Maven 2.0, or Maven 1.0?</a>
-          </i>
-        </li>
-        <li>
-          <i>
-            <a href="maven1.html#m1-future">What will happen</a>
-            to Maven 1.0?
-          </i>
-        </li>
-        <li>
-          <i>Will my
-            <a href="maven1.html#m1-plugins">Maven 1.0 plugins</a>
-            be supported?
-          </i>
-        </li>
-      </ul>
+      <p>
+        If the problem has not been reported before, the recommended way to get help is to
+        subscribe to the <a href="mail-lists.html">Maven Users Mailing list</a>. Many other users and Maven developers
+        will answer your questions there, and the answer will be archived for others in the future.
+      </p>
+      <p>
+        You can also reach the Maven developers on <a href="todo.html">IRC</a>.
+      </p>
     </section>
   </body>
 </document>
