diff --git a/generators/index.php b/generators/index.php
new file mode 100644
index 0000000..af88e7d
--- /dev/null
+++ b/generators/index.php
@@ -0,0 +1,105 @@
+<?php  																														require_once($_SERVER['DOCUMENT_ROOT'] . "/eclipse.org-common/system/app.class.php");	require_once($_SERVER['DOCUMENT_ROOT'] . "/eclipse.org-common/system/nav.class.php"); 	require_once($_SERVER['DOCUMENT_ROOT'] . "/eclipse.org-common/system/menu.class.php"); 	$App 	= new App();	$Nav	= new Nav();	$Menu 	= new Menu();		include($App->getProjectCommon());    # All on the same line to unclutter the user's desktop'
+
+#*****************************************************************************
+#
+# template.php
+#
+# Author: 		Denis Roy
+# Date:			2005-06-16
+#
+# Description: Type your page comments here - these are not sent to the browser
+#
+#
+#****************************************************************************
+
+#
+# Begin: page-specific settings.  Change these.
+$pageTitle 		= "Tigerstripe Generators Downloads";
+$pageKeywords	= "Tigerstripe, Generators";
+$pageAuthor		= "Eric Dillon";
+
+# Add page-specific Nav bars here
+# Format is Link text, link URL (can be http://www.someothersite.com/), target (_self, _blank), level (1, 2 or 3)
+# $Nav->addNavSeparator("My Page Links", 	"downloads.php");
+# $Nav->addCustomNav("My Link", "mypage.php", "_self", 3);
+# $Nav->addCustomNav("Google", "http://www.google.com/", "_blank", 3);
+
+# End: page-specific settings
+#
+
+# Paste your HTML content between the EOHTML markers!
+$html = <<<EOHTML
+
+<div id="maincontent">
+<div id="midcolumn">
+<h1>$pageTitle</h1>
+	<p>This page contains a list of the Tigerstripe Generators that are available from the Tigerstripe project.</p>
+	<p>Tigerstripe Generators are of 2 kinds:
+		<ul>
+			<li><a href="#class">Class-based Generators (M1-Level)</a>: This is the most common case for Model-Driven Engineering environment, in that the 
+			generation is based on the model itself, i.e. classes, associations and other artifacts defined as part of the model.</li>
+			<li><a href="#instance">Instance-based Generators (M0-level)</a>: allowing to generate content based on object instances of a specific model, driven by
+			the instances created on an Instance Diagram, e.g.</li>
+		</ul>
+	</p>
+	<h4>Instructions</h4>
+	<p>These generators are provided directly out of our CVS repository. Please follow these instructions to deploy the generators in your local 
+	instance of Tigerstripe:
+	  <ul>
+	  	<li>Check-out the chosen Generator from CVS
+	  		<ul>
+	  			<li>File->Import..., CVS->Projects from CVS...</li>
+	  			<li>If you don't already have it you need to create a Repository Location for the Tigerstripe Eclipe Project, with the following details:
+	  				<ul>
+	  					<li><strong>Host</strong>: dev.eclipse.org</li>
+	  					<li><strong>Repository Path</strong>: /cvsroot/technology</li>
+	  					<li><strong>User</strong>: anonymous</li>
+	  					<li><strong>Password</strong>: <small><i>leave blank</i></small></li>
+	  					<li>use the default connection details</li>
+	  				</ul>
+	  			</li>
+	  			<li>Browse to the org.eclipse.tigerstripe/generators directory and select the target Generator Project for import</li>
+	  		</ul>
+	  	</li>
+	  	<li>Once imported in your workspace, you need to deploy the generator to make use of them against one of you Models.<br/>
+	  	Right-click on the Generator project and select plugin->deploy... 
+	  	</li>
+	  	<li>Then simply navigate to the "plugin settings" tab of the tigerstripe.xml in your model project to enable the generator</li>
+	  	<li>Run it!</li>
+	  </ul>
+	</p>
+		<div class="homeitem3col">
+			<h3><a name="class"> </a>Class-Based Generators (M1-Level)</h3>
+			<ul>
+				<li>Coming soon...</li>
+			</ul>
+		</div>
+		<div class="homeitem3col">
+			<h3><a name="instance"> </a>Instance-Based Generators (M0-Level)</h3>
+			<ul>
+				<li><h4>M0-xml</h4>
+					<ul>
+						<li><strong>Description</strong>: creates an XML representation of instances found on an Instance Diagram.</li>
+						<li><strong>CVS Path</strong>: org.eclipse.tigerstripe/generators/m0xml</li>
+					</ul>
+				</li>
+			</ul>
+		</div>
+		</div>
+	<div id="rightcolumn">
+		<div class="sideitem">
+			<h6>Related links</h6>
+			<ul>
+				<li><a href="/tigerstripe/downloads"">Tigerstripe Downloads</a></li>
+			</ul>
+		</div>
+	</div>
+</div>
+
+
+EOHTML;
+
+
+# Generate the web page
+$App->generatePage($theme, $Menu, $Nav, $pageAuthor, $pageKeywords, $pageTitle, $html);
+?>
