diff --git a/myfaces-html5-core/pom.xml b/myfaces-html5-core/pom.xml
index 56317ac..1aaad9a 100644
--- a/myfaces-html5-core/pom.xml
+++ b/myfaces-html5-core/pom.xml
@@ -107,9 +107,6 @@
                         <goals>
                             <goal>build-metadata</goal>
                         </goals>
-                        <configuration>
-                            <outputFile>META-INF/myfaces-html5-metadata.xml</outputFile>
-                        </configuration>
                     </execution>
 
                     <!-- generate faces-config.xml -->
@@ -118,7 +115,6 @@
                         <configuration>
                             <templateFile>faces-config20.vm</templateFile>
                             <xmlFile>META-INF/faces-config.xml</xmlFile>
-                            <metadataFile>META-INF/myfaces-html5-metadata.xml</metadataFile>
                         </configuration>
                         <goals>
                             <goal>make-config</goal>
@@ -134,7 +130,6 @@
                         <configuration>
                             <jsfVersion>20</jsfVersion>
                             <templateComponentName>componentClass20.vm</templateComponentName>
-                            <metadataFile>META-INF/myfaces-html5-metadata.xml</metadataFile>
                         </configuration>
                     </execution>
 
@@ -147,7 +142,6 @@
                         <configuration>
                             <jsfVersion>12</jsfVersion>
                             <templateValidatorName>validatorClass12.vm</templateValidatorName>
-                            <metadataFile>META-INF/myfaces-html5-metadata.xml</metadataFile>
                         </configuration>
                     </execution>
 
@@ -157,7 +151,6 @@
                         <configuration>
                             <jsfVersion>12</jsfVersion>
                             <templateTagName>tagClass12.vm</templateTagName>
-                            <metadataFile>META-INF/myfaces-html5-metadata.xml</metadataFile>
                         </configuration>
                         <goals>
                             <goal>make-tags</goal>
@@ -172,7 +165,6 @@
                             <xmlFile>META-INF/html5-hx.tld</xmlFile>
                             <xmlBaseFile>src/main/resources/META-INF/jsp-tld-base.tld</xmlBaseFile>
                             <templateFile>jsp-tld.vm</templateFile>
-                            <metadataFile>META-INF/myfaces-html5-metadata.xml</metadataFile>
                             <params>
                                 <shortname>hx</shortname>
                                 <uri>http://myfaces.apache.org/html5/html</uri>
@@ -195,7 +187,6 @@
                             <xmlFile>META-INF/html5-hx.taglib.xml</xmlFile>
                             <xmlBaseFile>src/main/resources/META-INF/facelets-taglib-base.xml</xmlBaseFile>
                             <templateFile>facelets-taglib20.vm</templateFile>
-                            <metadataFile>META-INF/myfaces-html5-metadata.xml</metadataFile>
                             <params>
                                 <shortname>hx</shortname>
                                 <uri>http://myfaces.apache.org/html5/html</uri>
@@ -217,7 +208,6 @@
                             <xmlFile>META-INF/html5-fx.tld</xmlFile>
                             <xmlBaseFile>src/main/resources/META-INF/jsp-tld-base.tld</xmlBaseFile>
                             <templateFile>jsp-tld.vm</templateFile>
-                            <metadataFile>META-INF/myfaces-html5-metadata.xml</metadataFile>
                             <params>
                                 <shortname>fx</shortname>
                                 <uri>http://myfaces.apache.org/html5/core</uri>
@@ -240,7 +230,6 @@
                             <xmlFile>META-INF/html5-fx.taglib.xml</xmlFile>
                             <xmlBaseFile>src/main/resources/META-INF/facelets-taglib-base.xml</xmlBaseFile>
                             <templateFile>facelets-taglib20.vm</templateFile>
-                            <metadataFile>META-INF/myfaces-html5-metadata.xml</metadataFile>
                             <params>
                                 <shortname>fx</shortname>
                                 <uri>http://myfaces.apache.org/html5/core</uri>
@@ -253,6 +242,54 @@
                             <goal>make-config</goal>
                         </goals>
                     </execution>
+                    
+                    <!-- generate <hx> JSP tld file -->
+                    <execution>
+                        <id>make-html5-hx-tld-forsite</id>
+                        <phase>site</phase>
+                        <configuration>
+                            <outputDirectory>${project.build.directory}/tlddoc-facelets</outputDirectory>
+                            <xmlFile>META-INF/html5-hx.tld</xmlFile>
+                            <xmlBaseFile>src/main/resources/META-INF/jsp-tld-base.tld</xmlBaseFile>
+                            <templateFile>jsp-tld.vm</templateFile>
+                            <params>
+                                <shortname>hx</shortname>
+                                <uri>http://myfaces.apache.org/html5/html</uri>
+                                <displayname>HTML5 Html Comp Lib.</displayname>
+                                <description>HTML5 Html component library for MyFaces.</description>
+                            </params>
+                            <modelIds>
+                                <modelId>myfaces-html5-core</modelId>
+                            </modelIds>
+                        </configuration>
+                        <goals>
+                            <goal>make-config</goal>
+                        </goals>
+                    </execution>
+                    <!-- generate <fx> JSP tld file -->
+                    <execution>
+                        <id>make-html5-fx-tld-forsite</id>
+                        <phase>site</phase>
+                        <configuration>
+                            <outputDirectory>${project.build.directory}/tlddoc-facelets</outputDirectory>
+                            <xmlFile>META-INF/html5-fx.tld</xmlFile>
+                            <xmlBaseFile>src/main/resources/META-INF/jsp-tld-base.tld</xmlBaseFile>
+                            <templateFile>jsp-tld.vm</templateFile>
+                            <params>
+                                <shortname>fx</shortname>
+                                <uri>http://myfaces.apache.org/html5/core</uri>
+                                <displayname>HTML5 Core Comp Lib.</displayname>
+                                <description>HTML5 core component library for MyFaces.</description>
+                            </params>
+                            <modelIds>
+                                <modelId>myfaces-html5-core</modelId>
+                            </modelIds>
+                        </configuration>
+                        <goals>
+                            <goal>make-config</goal>
+                        </goals>
+                    </execution>
+                    
                 </executions>
             </plugin>
         </plugins>
@@ -272,72 +309,39 @@
                         -Running the install and site with generate-site profile fails since these executions is run already on install phase!
                         -So, for facelets documentation, only need to run site goal!
                     -->
+                    
                     <plugin>
                         <groupId>org.apache.myfaces.buildtools</groupId>
                         <artifactId>myfaces-builder-plugin</artifactId>
                         <version>${myfaces-builder-plugin-version}</version>
                         <executions>
                             <!-- first, build metadata. facelets tag documentation will be generated from this. -->
+                            <!-- 
                             <execution>
                                 <id>build-html5-metadata-forsite</id>
                                 <phase>site</phase>
                                 <goals>
                                     <goal>build-metadata</goal>
                                 </goals>
-                                <configuration>
-                                    <outputFile>META-INF/myfaces-html5-metadata.xml</outputFile>
-                                </configuration>
-                            </execution>
-                            <!-- generate <hx> JSP tld file -->
+                            </execution> -->
                             <execution>
-                                <id>make-html5-hx-tld-forsite</id>
-                                <phase>site</phase>
+                                <id>site-tagdoc-content</id>
                                 <configuration>
-                                    <outputDirectory>${project.build.directory}/tlddoc-facelets</outputDirectory>
-                                    <xmlFile>META-INF/html5-hx.tld</xmlFile>
-                                    <xmlBaseFile>src/main/resources/META-INF/jsp-tld-base.tld</xmlBaseFile>
-                                    <templateFile>jsp-tld.vm</templateFile>
-                                    <metadataFile>META-INF/myfaces-html5-metadata.xml</metadataFile>
-                                    <params>
-                                        <shortname>hx</shortname>
-                                        <uri>http://myfaces.apache.org/html5/html</uri>
-                                        <displayname>HTML5 Html Comp Lib.</displayname>
-                                        <description>HTML5 Html component library for MyFaces.</description>
-                                    </params>
                                     <modelIds>
                                         <modelId>myfaces-html5-core</modelId>
                                     </modelIds>
+                                    <taglibs>
+                                        <fx>http://myfaces.apache.org/html5/core</fx>
+                                        <hx>http://myfaces.apache.org/html5/html</hx>
+                                    </taglibs>
                                 </configuration>
                                 <goals>
-                                    <goal>make-config</goal>
-                                </goals>
-                            </execution>
-                            <!-- generate <fx> JSP tld file -->
-                            <execution>
-                                <id>make-html5-fx-tld-forsite</id>
-                                <phase>site</phase>
-                                <configuration>
-                                    <outputDirectory>${project.build.directory}/tlddoc-facelets</outputDirectory>
-                                    <xmlFile>META-INF/html5-fx.tld</xmlFile>
-                                    <xmlBaseFile>src/main/resources/META-INF/jsp-tld-base.tld</xmlBaseFile>
-                                    <templateFile>jsp-tld.vm</templateFile>
-                                    <metadataFile>META-INF/myfaces-html5-metadata.xml</metadataFile>
-                                    <params>
-                                        <shortname>fx</shortname>
-                                        <uri>http://myfaces.apache.org/html5/core</uri>
-                                        <displayname>HTML5 Core Comp Lib.</displayname>
-                                        <description>HTML5 core component library for MyFaces.</description>
-                                    </params>
-                                    <modelIds>
-                                        <modelId>myfaces-html5-core</modelId>
-                                    </modelIds>
-                                </configuration>
-                                <goals>
-                                    <goal>make-config</goal>
+                                    <goal>tagdoc-content</goal>
                                 </goals>
                             </execution>
                         </executions>
                     </plugin>
+                    
                 </plugins>
             </build>
 
@@ -349,8 +353,13 @@
                         <artifactId>maven-taglib-plugin</artifactId>
                         <version>2.4</version>
                             <configuration>
-                                <taglib.src.dir>${basedir}/target/classes/META-INF</taglib.src.dir>
+                            <!-- 
+                                <taglib.src.dir>${basedir}/target/classes/META-INF</taglib.src.dir> -->
+                                <srcDir>${basedir}/target/tlddoc-facelets</srcDir>
+                                <!-- 
                                 <tldDocDir>${basedir}/target/site/tlddoc-facelets</tldDocDir>
+                                 -->
+                                <tldDocDir>${basedir}/target/site/tlddoc</tldDocDir>
                             </configuration>
                     </plugin>
 
@@ -361,13 +370,12 @@
                         <reportSets>
                             <reportSet>
                                 <configuration>
-                                    <metadataFile>META-INF/myfaces-html5-metadata.xml</metadataFile>
                                     <modelIds>
                                         <modelId>myfaces-html5-core</modelId>
                                     </modelIds>
                                     <taglibs>
                                         <fx>http://myfaces.apache.org/html5/core</fx>
-                                        <hx>http://myfaces.apache.org/html5/core</hx>
+                                        <hx>http://myfaces.apache.org/html5/html</hx>
                                     </taglibs>
                                 </configuration>
                                 <reports>
diff --git a/myfaces-html5-core/src/main/java/org/apache/myfaces/html5/component/input/AbstractHtmlInputColor.java b/myfaces-html5-core/src/main/java/org/apache/myfaces/html5/component/input/AbstractHtmlInputColor.java
index 75f54c9..6228dc2 100644
--- a/myfaces-html5-core/src/main/java/org/apache/myfaces/html5/component/input/AbstractHtmlInputColor.java
+++ b/myfaces-html5-core/src/main/java/org/apache/myfaces/html5/component/input/AbstractHtmlInputColor.java
@@ -29,7 +29,7 @@
  * simple color definition</a>. A simple valid color is basically hex representation of the colors, likewise used in
  * CSS. e.g: #FFAABB, #12ab3C. 
  * <br/>
- * Extends the functionality of < h:inputText >.
+ * Extends the functionality of &lt; h:inputText &gt;.
  * 
  * @author Ali Ok
  * 
diff --git a/myfaces-html5-core/src/main/java/org/apache/myfaces/html5/component/input/AbstractHtmlInputDateTime.java b/myfaces-html5-core/src/main/java/org/apache/myfaces/html5/component/input/AbstractHtmlInputDateTime.java
index 340ea18..d848d12 100644
--- a/myfaces-html5-core/src/main/java/org/apache/myfaces/html5/component/input/AbstractHtmlInputDateTime.java
+++ b/myfaces-html5-core/src/main/java/org/apache/myfaces/html5/component/input/AbstractHtmlInputDateTime.java
@@ -56,59 +56,59 @@
      * Specified value will be multiplied with the step scale factor which is different for each type.
      * <br/>
      * Information about the step for each type is:
-     * 
-     *   <table border="1">
-     *      <tr>
-     *          <th>type</th>
-     *          <th>Description for step scale factor</th>
-     *          <th>Default step value(what 'any' means)</th>
-     *          <th>Applicable minimum value of step</th>
-     *          <th>Applicable maximum value of step</th>
-     *      <tr>
-     *      <tr>
-     *          <td>datetime</td>
-     *          <td>Step should be expressed in seconds.</td>
-     *          <td>1 minute</td>
-     *          <td>0.01 (10 miliseconds)</td>
-     *          <td>N/A</td> //XXX: test it again
-     *      </tr>
-     *      <tr>
-     *          <td>date</td>
-     *          <td>Step should be expressed in days.</td>
-     *          <td>1 day</td>
-     *          <td>1 (1 day)</td>
-     *          <td>N/A</td> //XXX: test it again
-     *      </tr>
-     *      <tr>
-     *          <td>time</td>
-     *          <td>Step should be expressed in seconds. If the step is less than 1 second, browser should show the miliseconds input too.</td>
-     *          <td>1 minute</td>
-     *          <td>0.01 (10 miliseconds)</td>
-     *          <td>N/A</td> //XXX: test it again
-     *      </tr>
-     *      <tr>
-     *          <td>month</td>
-     *          <td>Step should be expressed in months.</td>
-     *          <td>1 month</td>
-     *          <td>1 (1 month)</td>
-     *          <td>N/A</td> //XXX: test it again
-     *      </tr>
-     *      <tr>
-     *          <td>week</td>
-     *          <td>Step should be expressed in weeks.</td>
-     *          <td>1 week</td>
-     *          <td>1 (1 week)</td>
-     *          <td>N/A</td> //XXX: test it again
-     *      </tr>
-     *      <tr>
-     *          <td>datetime-local</td>
-     *          <td>Step should be expressed in seconds.</td>
-     *          <td>1 minute</td>
-     *          <td>0.01 (10 miliseconds)</td>
-     *          <td>N/A</td> //XXX: test it again
-     *      </tr>
-     *   </table>
-     * 
+     * <code>
+     *   &lt;table border="1"&gt;
+     *      &lt;tr&gt;
+     *          &lt;th&gt;type&lt;/th&gt;
+     *          &lt;th&gt;Description for step scale factor&lt;/th&gt;
+     *          &lt;th&gt;Default step value(what 'any' means)&lt;/th&gt;
+     *          &lt;th&gt;Applicable minimum value of step&lt;/th&gt;
+     *          &lt;th&gt;Applicable maximum value of step&lt;/th&gt;
+     *      &lt;tr&gt;
+     *      &lt;tr&gt;
+     *          &lt;td&gt;datetime&lt;/td&gt;
+     *          &lt;td&gt;Step should be expressed in seconds.&lt;/td&gt;
+     *          &lt;td&gt;1 minute&lt;/td&gt;
+     *          &lt;td&gt;0.01 (10 miliseconds)&lt;/td&gt;
+     *          &lt;td&gt;N/A&lt;/td&gt; //XXX: test it again
+     *      &lt;/tr&gt;
+     *      &lt;tr&gt;
+     *          &lt;td&gt;date&lt;/td&gt;
+     *          &lt;td&gt;Step should be expressed in days.&lt;/td&gt;
+     *          &lt;td&gt;1 day&lt;/td&gt;
+     *          &lt;td&gt;1 (1 day)&lt;/td&gt;
+     *          &lt;td&gt;N/A&lt;/td&gt; //XXX: test it again
+     *      &lt;/tr&gt;
+     *      &lt;tr&gt;
+     *          &lt;td&gt;time&lt;/td&gt;
+     *          &lt;td&gt;Step should be expressed in seconds. If the step is less than 1 second, browser should show the miliseconds input too.&lt;/td&gt;
+     *          &lt;td&gt;1 minute&lt;/td&gt;
+     *          &lt;td&gt;0.01 (10 miliseconds)&lt;/td&gt;
+     *          &lt;td&gt;N/A&lt;/td&gt; //XXX: test it again
+     *      &lt;/tr&gt;
+     *      &lt;tr&gt;
+     *          &lt;td&gt;month&lt;/td&gt;
+     *          &lt;td&gt;Step should be expressed in months.&lt;/td&gt;
+     *          &lt;td&gt;1 month&lt;/td&gt;
+     *          &lt;td&gt;1 (1 month)&lt;/td&gt;
+     *          &lt;td&gt;N/A&lt;/td&gt; //XXX: test it again
+     *      &lt;/tr&gt;
+     *      &lt;tr&gt;
+     *          &lt;td&gt;week&lt;/td&gt;
+     *          &lt;td&gt;Step should be expressed in weeks.&lt;/td&gt;
+     *          &lt;td&gt;1 week&lt;/td&gt;
+     *          &lt;td&gt;1 (1 week)&lt;/td&gt;
+     *          &lt;td&gt;N/A&lt;/td&gt; //XXX: test it again
+     *      &lt;/tr&gt;
+     *      &lt;tr&gt;
+     *          &lt;td&gt;datetime-local&lt;/td&gt;
+     *          &lt;td&gt;Step should be expressed in seconds.&lt;/td&gt;
+     *          &lt;td&gt;1 minute&lt;/td&gt;
+     *          &lt;td&gt;0.01 (10 miliseconds)&lt;/td&gt;
+     *          &lt;td&gt;N/A&lt;/td&gt; //XXX: test it again
+     *      &lt;/tr&gt;
+     *   &lt;/table&gt;
+     * </code>
      */
     @JSFProperty(deferredValueType="java.lang.Double", defaultValue="Double.MIN_VALUE")
     public abstract double getStep();
diff --git a/myfaces-html5-core/src/main/java/org/apache/myfaces/html5/component/properties/Html5InputProperties.java b/myfaces-html5-core/src/main/java/org/apache/myfaces/html5/component/properties/Html5InputProperties.java
index 8c18488..5481c10 100644
--- a/myfaces-html5-core/src/main/java/org/apache/myfaces/html5/component/properties/Html5InputProperties.java
+++ b/myfaces-html5-core/src/main/java/org/apache/myfaces/html5/component/properties/Html5InputProperties.java
@@ -40,7 +40,7 @@
     public abstract Object getSuggestions();
 
     /**
-     * Id of <hx:datalist> or HTML <datalist> for suggestions mechanism. By this way, suggestion options(datalist) can
+     * Id of &lt;hx:datalist&gt; or HTML &lt;datalist&gt; for suggestions mechanism. By this way, suggestion options(datalist) can
      * be shared across several input elements. If this attribute is set, other suggestion mechanisms(with
      * f:selectItem(s) children or 'suggestions' attribute) should not be used
      * 
diff --git a/myfaces-html5-core/src/main/java/org/apache/myfaces/html5/component/properties/WidgetVarProperty.java b/myfaces-html5-core/src/main/java/org/apache/myfaces/html5/component/properties/WidgetVarProperty.java
index dbe3c76..30a4db1 100644
--- a/myfaces-html5-core/src/main/java/org/apache/myfaces/html5/component/properties/WidgetVarProperty.java
+++ b/myfaces-html5-core/src/main/java/org/apache/myfaces/html5/component/properties/WidgetVarProperty.java
@@ -24,7 +24,7 @@
 public interface WidgetVarProperty {
 
     /**
-     * Defines the Javascript variable name of the object created by this component.</br>
+     * Defines the Javascript variable name of the object created by this component.<br/>
      * Defaults to 'widget_' followed by the client id of the component where ':' characters in
      * client id of the component are replaced with '_'.
      */
diff --git a/myfaces-html5-core/src/main/java/org/apache/myfaces/html5/component/properties/effect/TransitionProperties.java b/myfaces-html5-core/src/main/java/org/apache/myfaces/html5/component/properties/effect/TransitionProperties.java
index 04b6f30..27d6a7a 100644
--- a/myfaces-html5-core/src/main/java/org/apache/myfaces/html5/component/properties/effect/TransitionProperties.java
+++ b/myfaces-html5-core/src/main/java/org/apache/myfaces/html5/component/properties/effect/TransitionProperties.java
@@ -46,7 +46,7 @@
      * <li>ease-in</li>
      * <li>ease-out</li>
      * <li>ease-in-out</li>
-     * <li>cubic-bezier(<number>, <number>, <number>, <number>)</li>
+     * <li>cubic-bezier(&lt;number&gt;, &lt;number&gt;, &lt;number&gt;, &lt;number&gt;)</li>
      * </ul>
      */
     @JSFProperty(deferredValueType = "java.lang.String")
diff --git a/myfaces-html5-core/src/main/java/org/apache/myfaces/html5/handler/DragSourceBehaviorHandler.java b/myfaces-html5-core/src/main/java/org/apache/myfaces/html5/handler/DragSourceBehaviorHandler.java
index e956efe..974bf6f 100644
--- a/myfaces-html5-core/src/main/java/org/apache/myfaces/html5/handler/DragSourceBehaviorHandler.java
+++ b/myfaces-html5-core/src/main/java/org/apache/myfaces/html5/handler/DragSourceBehaviorHandler.java
@@ -73,7 +73,7 @@
 
     /**
      * The types of the dropTargets that drags from this dragSource can be applied. Can be comma separated set or
-     * String[] or Collection<String>. <br/>
+     * String[] or Collection&lt;String&gt;. <br/>
      * If defined, drags from this dragSource will work into only the dropTargets that have one of the same type. The
      * drag will be accepted if 'types' of hx:dropTarget has one of the types defined here.
      */
@@ -81,7 +81,7 @@
     private final TagAttribute _dropTargetTypes;
 
     /**
-     * Data to send to server when a successful drag&drop happens from this source. <br/>
+     * Data to send to server when a successful drag and drop happens from this source. <br/>
      * The param can be received using the {@link DropEvent#getParam()} method at dropListener of the fx:dropTarget.
      */
     @JSFFaceletAttribute(name = "param", className = "javax.el.ValueExpression", deferredValueType = "java.lang.String")
diff --git a/myfaces-html5-core/src/main/java/org/apache/myfaces/html5/handler/DropTargetBehaviorHandler.java b/myfaces-html5-core/src/main/java/org/apache/myfaces/html5/handler/DropTargetBehaviorHandler.java
index ecba7e6..af022ac 100644
--- a/myfaces-html5-core/src/main/java/org/apache/myfaces/html5/handler/DropTargetBehaviorHandler.java
+++ b/myfaces-html5-core/src/main/java/org/apache/myfaces/html5/handler/DropTargetBehaviorHandler.java
@@ -79,7 +79,7 @@
     private final TagAttribute _action;
 
     /**
-     * The type of the drop target. Can be comma separated set or String[] or Collection<String>. <br/>
+     * The type of the drop target. Can be comma separated set or String[] or Collection&lt;String&gt;. <br/>
      * If defined, drags from elements that are generated by MyFaces-Html5 components with hx:dragSource behavior, will
      * be filtered. The drag will be accepted if dropTargetTypes of hx:dragSource is one of the allowed. For the drags
      * that are originated from other elements, this property is ignored. Please see acceptMimeTypes property for
@@ -90,7 +90,7 @@
 
     /**
      * If this property is set, only content dropped into this drop zone with defined mime type will be accepted and
-     * sent to server-side drop listener. Can be comma separated set or String[] or Collection<String>. <br/>
+     * sent to server-side drop listener. Can be comma separated set or String[] or Collection&lt;String&gt;. <br/>
      * <br/>
      * HTML5 DnD allows us to drop anything into drop zone : files from desktop, images on some other document, etc. So
      * this property is a filter. If value is "*", any content dropped into this zone will be accepted. <br/>
@@ -98,31 +98,33 @@
      * All type info and data of dropped stuff will be sent to dropListener. For example, if value of this property is
      * "*" and we drop some image from any Html page(even not generated by JSF), dropListener will be triggered with the
      * following data:
-     * <table border="1">
-     * <tr>
-     * <td>content-type</td>
-     * <td>value</td>
-     * </tr>
-     * <tr>
-     * <td>text/uri-list</td>
-     * <td>http://example.org/someImage.png</td>
-     * </tr>
-     * <tr>
-     * <td>Text</td>
-     * <td>http://example.org/someImage.png</td>
-     * </tr>
-     * <tr>
-     * <td>text/plain</td>
-     * <td>http://example.org/someImage.png</td>
-     * </tr>
-     * <tr>
-     * <td>URL</td>
-     * <td>http://example.org/someImage.png</td>
-     * </tr>
-     * </table>
+     * <code>
+     * &lt;table border="1"&gt;
+     * &lt;tr&gt;
+     * &lt;td&gt;content-type&lt;/td&gt;
+     * &lt;td&gt;value&lt;/td&gt;
+     * &lt;/tr&gt;
+     * &lt;tr&gt;
+     * &lt;td&gt;text/uri-list&lt;/td&gt;
+     * &lt;td&gt;http://example.org/someImage.png&lt;/td&gt;
+     * &lt;/tr&gt;
+     * &lt;tr&gt;
+     * &lt;td&gt;Text&lt;/td&gt;
+     * &lt;td&gt;http://example.org/someImage.png&lt;/td&gt;
+     * &lt;/tr&gt;
+     * &lt;tr&gt;
+     * &lt;td&gt;text/plain&lt;/td&gt;
+     * &lt;td&gt;http://example.org/someImage.png&lt;/td&gt;
+     * &lt;/tr&gt;
+     * &lt;tr&gt;
+     * &lt;td&gt;URL&lt;/td&gt;
+     * &lt;td&gt;http://example.org/someImage.png&lt;/td&gt;
+     * &lt;/tr&gt;
+     * &lt;/table&gt;
+     * </code>
      * <br/>
-     * 
-     * Mime type is "text/x-myfaces-html5-dnd-source" for drag&drop events that is generated by MyFaces-Html5 components
+     *
+     * Mime type is "text/x-myfaces-html5-dnd-source" for drag and drop events that is generated by MyFaces-Html5 components
      * and that mime type is defined at {@link DropTargetBehaviorRenderer#DEFAULT_MYFACES_MIME_TYPE}. Default value of
      * this property is "text/x-myfaces-html5-dnd-source", thus only MyFaces generated components can be dropped into
      * the drop target.
diff --git a/pom.xml b/pom.xml
index 3d298a7..27719de 100644
--- a/pom.xml
+++ b/pom.xml
@@ -34,11 +34,13 @@
     <packaging>pom</packaging>
     <name>Apache MyFaces Html5 Parent Project</name>
     <version>1.0.0-alpha-SNAPSHOT</version>
+    <url>http://myfaces.apache.org/html5</url>
     <description>Apache MyFaces Html5 is a sub-project of Apache MyFaces which provides Html5 functionality.
     </description>
     <scm>
-        <connection>scm:svn:http://svn.apache.org/repos/asf/myfaces/html5/trunk</connection>
-        <developerConnection>scm:svn:http://svn.apache.org/repos/asf/myfaces/html5/trunk</developerConnection>
+      <connection>scm:svn:http://svn.apache.org/repos/asf/myfaces/html5/trunk</connection>
+      <developerConnection>scm:svn:https://svn.apache.org/repos/asf/myfaces/html5/trunk</developerConnection>
+      <url>http://svn.apache.org/repos/asf/myfaces/html5/trunk</url>
     </scm>
 
     <modules>
@@ -127,6 +129,14 @@
         </profile>
     </profiles>
 
+    <reporting>
+      <plugins>
+        <plugin>
+          <artifactId>maven-javadoc-plugin</artifactId>
+        </plugin>
+      </plugins>
+    </reporting>
+
     <distributionManagement>
         <site>
             <id>apache.website</id>
diff --git a/src/site/site.xml b/src/site/site.xml
index 32ff8d1..a1e704e 100644
--- a/src/site/site.xml
+++ b/src/site/site.xml
@@ -52,24 +52,28 @@
         </links>
 
         <menu name="Html5 Support for Apache MyFaces" inherit="top">
-            <item name="Overview"       href="/index.html"/>
-            <item name="Building"       href="/building.html"/>
-            <item name="Features"       href="/features.html"/>
+            <item name="Overview"       href="http://myfaces.apache.org/html5/index.html"/>
+            <item name="Building"       href="http://myfaces.apache.org/html5/building.html"/>
+            <item name="Features"       href="http://myfaces.apache.org/html5/features.html"/>
             <item name="Showcase"       href="http://bit.ly/myfaces-html5-demo"/>
         </menu>
 
+        <menu ref="modules" inherit="top"/>
+
         <menu name="Documentation" inherit="top">
-            <item name="Getting Started"        href="/gettingstarted.html"/>
-            <item name="Facelets Tag Docs"      href="/myfaces-html5-core/tlddoc-facelets/index.html"/>
+            <item name="Getting Started"        href="http://myfaces.apache.org/html5/gettingstarted.html"/>
+            <item name="Facelets Tag Docs"      href="http://myfaces.apache.org/html5/myfaces-html5-core/tlddoc-facelets/index.html"/>
         </menu>
 
         <menu name="Project Documentation" inherit="top">
-            <item name="Mailing Lists"          href="/mail-lists.html"/>
-            <item name="Project License"        href="/license.html"/>
-            <item name="Project Summary"        href="/project-summary.html"/>
-            <item name="Source Repository"      href="/source-repository.html"/>
+            <item name="Mailing Lists"          href="http://myfaces.apache.org/html5/mail-lists.html"/>
+            <item name="Project License"        href="http://myfaces.apache.org/html5/license.html"/>
+            <item name="Project Summary"        href="http://myfaces.apache.org/html5/project-summary.html"/>
+            <item name="Source Repository"      href="http://myfaces.apache.org/html5/source-repository.html"/>
         </menu>
 
+        <menu ref="reports" inherit="top"/>
+
         <menu name="Foundation" inherit="top">
             <item name="ASF"            href="http://www.apache.org/" />
             <item name="Sponsorship"    href="http://www.apache.org/foundation/sponsorship.html" />
