diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..bc8a670
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1 @@
+.idea/*
\ No newline at end of file
diff --git a/commons.md b/commons.md
index ab02686..4bc355c 100644
--- a/commons.md
+++ b/commons.md
@@ -1,4 +1,4 @@
-# Apache MyFaces Extensions Scripting / Ext-Scripting
+# Apache MyFaces Commons
 
 > :warning: **This project is in maintaneance mode**
 
diff --git a/core.md b/core.md
deleted file mode 100644
index 19b2459..0000000
--- a/core.md
+++ /dev/null
@@ -1,12 +0,0 @@
-# Apache MyFaces Core
-
-Apache MyFaces Core is the implementation of the JavaServer™ Faces (JSF) specification and Jakarta Faces specification.
-
-## Build
-Checkout from [Apache GitBox](https://gitbox.apache.org/repos/asf?p=myfaces.git) or [GitHub](https://github.com/apache/myfaces) and run `mvn clean install`
-
-## Useful links
-* Builds: [Jenkins](https://ci-builds.apache.org/job/MyFaces/), [Travis](https://travis-ci.org/apache/myfaces)
-* Issue Management: [JIRA](https://issues.apache.org/jira/projects/MYFACES/) 
-* Javadocs: [javadoc.io](https://javadoc.io/doc/org.apache.myfaces.core/myfaces-api/latest/index.html)
-* Wiki: [Wiki](https://cwiki.apache.org/confluence/display/MYFACES/Index)
diff --git a/coreConcepts.md b/coreConcepts.md
new file mode 100644
index 0000000..627b9c7
--- /dev/null
+++ b/coreConcepts.md
@@ -0,0 +1,11 @@
+# Apache MyFaces Core Concepts
+
+[View Pooling](/coreConceptsViewPooling.md)
+
+[Cache EL expressions](/coreConceptsCacheElExpressions.md)
+
+[ELResolver ordering](/coreConceptsELResolverOrdering.md)
+
+[Immediate Attribute](/coreConceptsImmediateAttribute.md)	
+
+[Whitespace Compression](/coreConceptsWhitespaceCompression.md)
\ No newline at end of file
diff --git a/coregettingstarted.md b/coregettingstarted.md
index 73eab44..fb9b5ac 100644
--- a/coregettingstarted.md
+++ b/coregettingstarted.md
@@ -1,12 +1,23 @@
 # Apache MyFaces Core - Getting Started
 
+## Build
+Checkout from [Apache GitBox](https://gitbox.apache.org/repos/asf?p=myfaces.git) or [GitHub](https://github.com/apache/myfaces) and run `mvn clean install`
+
+## Useful links
+* Builds: [Jenkins](https://ci-builds.apache.org/job/MyFaces/), [Travis](https://travis-ci.org/apache/myfaces)
+* Issue Management: [JIRA](https://issues.apache.org/jira/projects/MYFACES/) 
+* Javadocs: [javadoc.io](https://javadoc.io/doc/org.apache.myfaces.core/myfaces-api/latest/index.html)
+* Wiki: [Wiki](https://cwiki.apache.org/confluence/display/MYFACES/Index)
+
+## Usage
+
 Apache MyFaces Core can be deployed to any Servlet Container (like Tomcat, Jetty) inside the WAR or inside the container (/tomcat/lib).  
 If you want to deploy it, instead of Mojarra, inside a Application Server like Glassfish or JBoss, please check the documentation of the Application Server.  
 
 We also have a Quarkus extensions since 2.3-next.  
 
 
-## Dependency
+### Dependency
 ```xml
 <dependency>
     <groupId>org.apache.myfaces.core</groupId>
@@ -20,7 +31,7 @@
 </dependency>
 ```
 
-## web.xml
+### web.xml
 ```xml
 <?xml version="1.0" encoding="UTF-8"?>
 <web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
@@ -40,7 +51,7 @@
 </web-app>
 ```
 
-## index.xhtml
+### index.xhtml
 ```xml
 <!DOCTYPE html>
 <html xmlns="http://www.w3.org/1999/xhtml"
@@ -59,7 +70,7 @@
 </html>
 ```
 
-## Quarkus
+### Quarkus
 
 Since 2.3-next a Quarkus extension is available: 
 
diff --git a/home.md b/home.md
index 3486d2a..123af4f 100644
--- a/home.md
+++ b/home.md
@@ -6,7 +6,7 @@
 * MyFaces Core | Implementation of the JSF specification
 * MyFaces Tobago | A component library
 
-## Inactive projects (maintenance mode)
+## Inactive Projects (Maintenance Mode)
 * MyFaces Commons | Utilities like components, converters, validators
 * MyFaces Tomahawk | A component library
 * MyFaces Trinidad | A component library (former Oracle ADF-Faces)
diff --git a/inactiveProjects.md b/inactiveProjects.md
new file mode 100644
index 0000000..1a1fc5c
--- /dev/null
+++ b/inactiveProjects.md
@@ -0,0 +1,34 @@
+# Inactive Projects (Maintenance Mode)
+
+[Apache MyFaces Commons](#apache-myfaces-commons)
+
+[Apache MyFaces Tomahawk](#apache-myfaces-tomahawk)
+
+[Apache MyFaces Trinidad](#apache-myfaces-trinidad)
+
+[Apache MyFaces Orchestra](#apache-myfaces-orchestra)
+
+[Apache MyFaces Extensions Scripting / Ext-Scripting](#apache-myfaces-extensions-validator-extval)
+
+[Apache MyFaces Extensions CDI / CODI](#apache-myfaces-extension-cdi-codi)
+
+[Apache MyFaces Extensions Scripting / Ext-Scripting](#apache-myfaces-extensions-scripting-ext-scripting)
+
+[Apache MyFaces PortletBridge](#apache-myfaces-portletbridge)
+
+
+[Commons](/commons.md ':include')
+
+[Tomahawk](/tomahawk.md ':include')
+
+[Trinidad](/trinidad.md ':include')
+
+[Orchestra](/orchestra.md ':include')
+
+[Validator / ExtVal](/extvalidator.md ':include')
+
+[CDI / CODI](/extcdi.md ':include')
+
+[Scripting](/extscripting.md ':include')
+
+[Portlet Bridge](/portletbridge.md ':include')
\ No newline at end of file
diff --git a/index.html b/index.html
index 70a88f2..dc0e507 100644
--- a/index.html
+++ b/index.html
@@ -34,9 +34,20 @@
       ],
       plugins: [
         function(hook, vm) {
+          var footer = [
+            '<hr/>',
+            '<footer>',
+            '   <p>Copyright © 2002-2020 The Apache Software Foundation, Licensed under the Apache License, Version 2.0.</p>\n',
+            '   <p>Apache MyFaces, Apache Tobago, Apache, the Apache feather logo, and the Apache MyFaces project logos are trademarks of The Apache Software Foundation.</p>',
+            '</footer>'
+          ].join('');
+
           hook.ready(function () {
 
           });
+          hook.afterEach(function(html) {
+            return html + footer;
+          });
         }
       ]
     };
diff --git a/menu.md b/menu.md
index 6abaf43..498fc35 100644
--- a/menu.md
+++ b/menu.md
@@ -1,39 +1,29 @@
 - [Home](/)
 - [News](/news.md)
+- [Community](/community.md)
 
-- [Core](/core.md)
+- Core
   - [Getting Started](/coregettingstarted.md)
   - [Release Checklist](/coreReleaseChecklist.md)
-  - Concepts
-    - [View Pooling](/coreConceptsViewPooling.md)
-	- [Cache EL expressions](/coreConceptsCacheElExpressions.md)
-	- [ELResolver ordering](/coreConceptsELResolverOrdering.md)
-	- [Immediate Attribute](/coreConceptsImmediateAttribute.md)	
-	- [Whitespace Compression](/coreConceptsWhitespaceCompression.md)
-  - [1.1](/core11.md)
-  - [1.2](/core12.md)
-  - [2.0](/core20.md)
-  - [2.1](/core21.md)
-  - [2.2](/core22.md)
-  - [2.3](/core23.md)
-  - [2.3-next](/core23next.md)
-  - [3.0](/core30.md)
-  - [4.0](/core40.md)
-
-
+  - [Concepts](/coreConcepts.md)
+  - Versions
+    - [4.0](/core40.md)
+    - [3.0](/core30.md)    
+    - [2.3-next](/core23next.md )     
+    - [2.3](/core23.md)
+    - [2.2](/core22.md)        
+    - [Old Versions](/oldVersions.md)
+    
 - Tobago
-  - [Getting Started](/tobago/gettingstarted.md)
-  - [Source](/tobago/source.md)
-  - [Downloads](/tobago/downloads.md)
-
-- Inactive / Maintenance
-  - [Commons](/commons.md)
-  - [Tomahawk](/tomahawk.md)
-  - [Trinidad](/trinidad.md)
-  - [Orchestra](/orchestra.md)
-  - [Validator / ExtVal](/extvalidator.md)
-  - [CDI / CODI](/extcdi.md)
-  - [Scripting](/extscripting.md)
-  - [Portlet Bridge](/portletbridge.md)
+  - [Getting Started](/tobago.md)
+  - [Demo](http://tobago-vm.apache.org/)
   
-- [Community](/community.md)
+- [Inactive Projects](/inactiveProjects.md)
+  
+- ASF
+  - [Foundation](https://www.apache.org/)
+  - [License](https://www.apache.org/licenses/)
+  - [Events](https://www.apache.org/events/)
+  - [Security](https://www.apache.org/security/)
+  - [Sponsorship](https://www.apache.org/foundation/sponsorship.html)
+  - [Thanks](https://www.apache.org/foundation/thanks.html)
diff --git a/oldVersions.md b/oldVersions.md
new file mode 100644
index 0000000..cd33141
--- /dev/null
+++ b/oldVersions.md
@@ -0,0 +1,18 @@
+# Apache MyFaces Core Versions
+
+
+[Apache MyFaces Core 2.1](#apache-myfaces-core-21)
+
+[Apache MyFaces Core 2.0](#apache-myfaces-core-20)
+
+[Apache MyFaces Core 1.2](#apache-myfaces-core-12)
+
+[Apache MyFaces Core 1.1](#apache-myfaces-core-11)
+
+[2.1](/core21.md ':include')
+
+[2.0](/core20.md ':include')
+
+[1.2](/core12.md ':include')
+
+[1.1](/core11.md ':include')
diff --git a/portletbridge.md b/portletbridge.md
new file mode 100644
index 0000000..f480584
--- /dev/null
+++ b/portletbridge.md
@@ -0,0 +1,10 @@
+# Apache MyFaces PortletBridge
+
+> :warning: **This project is in maintaneance mode**
+
+The MyFaces Portlet Bridge project provides implementations of the technology needed to expose a JSF application as a portlet within a Portlet 2.0 or Portlet 1.0 environment. This technology is defined by the Portlet Bridge for JavaServer Faces standards. This project provides the refererence implementations for these standards and is being developed by the OpenSource community.
+
+## Links
+* [Homepage](https://myfaces.apache.org/portlet-bridge)
+* [SVN ViewVC](https://svn.apache.org/viewvc/myfaces/portlet-bridge/trunk/)
+* [SVN](https://svn.apache.org/repos/asf/myfaces/portlet-bridge/trunk/)
diff --git a/tobago.md b/tobago.md
new file mode 100644
index 0000000..aadde54
--- /dev/null
+++ b/tobago.md
@@ -0,0 +1,55 @@
+# Apache Tobago
+
+The goal of Apache Tobago™ is to provide the community with a well designed set of user interface components based on JSF and run on MyFaces.
+
+Tobago is more than just a tag library. The following statements characterize Tobago and make it different from other frameworks:
+
+  * The focus of Tobago is to create business applications without the need of coding
+    HTML, CSS and JavaScript. The development of Tobago pages follows more the development of
+    conventional user interfaces than the creation of web pages.
+
+  * The UI components are abstracted from HTML and any layout information that does
+    not belong to the general page structure. The final output format is determined
+    by the client/user-agent.
+
+  * A theming mechanism makes it easy to change the look and feel and to provide
+    special implementations for certain browsers. A fallback solution ensures that
+    as much code is reused for new themes as possible.
+
+  * A layout manager is used to arrange the components automatically. This means, no
+    manual laying out with HTML tables or other constructs is needed.
+
+  
+### Getting Started
+         
+[Getting started page](http://tobago-vm.apache.org/getting-started.html) 
+
+### Downloads
+
+[Download page](http://tobago-vm.apache.org/demo-4-release/content/10-intro/85-download/download.xhtml)
+  
+## News
+
+### November 3, 2020 MyFaces Tobago 4.5.1 Released
+
+The MyFaces Tobago component library in version 4.5.1 has been released.
+
+Release notes can be found in [Jira](https://issues.apache.org/jira/secure/ReleaseNote.jspa?projectId=12310273&styleName=Html&version=12348200).
+
+### May 29, 2020 MyFaces Tobago 4.5.0 Released
+
+The MyFaces Tobago component library in version 4.5.0 has been released.
+
+Release notes can be found in [Jira](https://issues.apache.org/jira/secure/ReleaseNote.jspa?projectId=12310273&styleName=Html&version=12345562).
+
+### February 16, 2020 MyFaces Tobago 2.4.2 Released
+
+The MyFaces Tobago component library in version 2.4.2 has been released.
+
+Release notes can be found in [Jira](https://issues.apache.org/jira/secure/ReleaseNote.jspa?projectId=12310273&styleName=Html&version=12345177).
+
+### May 28, 2019 MyFaces Tobago 4.4.1 Released
+
+The MyFaces Tobago component library in version 4.4.1 has been released.
+
+Release notes can be found in [Jira](http://issues.apache.org/jira/secure/ReleaseNote.jspa?projectId=12310273&styleName=Html&version=12345061).   
\ No newline at end of file
