diff --git a/new-noteworthy/luna/index.html b/new-noteworthy/luna/index.html
index 8838937..2a10c3b 100644
--- a/new-noteworthy/luna/index.html
+++ b/new-noteworthy/luna/index.html
@@ -1 +1,9 @@
-<?xml version='1.0' encoding='utf-8' ?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8"/></head><body><h1 id="EclipseModelingPackageNewandNoteworthy">Eclipse Modeling Package : New and Noteworthy</h1><h2 id="GettingStarted">Getting Started</h2><p>You can download the Modeling Package for your platform on the <a href="https://www.eclipse.org/downloads/">Eclipse Download Page</a> . This package is focused on providing framework and tools to leverage models : an Ecore graphical modeler (class-like diagram), Java code generation utility for RCP applications and the EMF Framework, model comparison support, support for XSD schemas, OCL and graphical modeler runtimes. It includes a complete SDK, developer tools and source code.</p><p>This package is built and maintained by Eclipse Modeling enthusiasts. Dropping a note or in the <a href="https://www.eclipse.org/forums/index.php/f/182/">Eclipse Forum</a> to give feedback is always appreciated. </p><h2 id="RedesignedClassDiagram">Re-designed Class Diagram</h2><p>After many years of stalling, the introduction of Sirius in the Eclipse Modeling stack enabled a complete redesign of the Ecore Diagram Editor.</p><p><img border="0" src="https://www.eclipse.org/ecoretools/images/intro.png"/></p><p>A slicker design, more capabilities, more stability.</p><p>If you need to create or explore an Ecore model, or even if you only need to produce diagrams, try it, have a look <a href="https://www.eclipse.org/ecoretools/">on the brand new website</a>  and <a href="https://www.eclipse.org/forums/index.php/f/165/">give your feedback</a>  </p><h2 id="ModelComparisonandMerge">Model Comparison and Merge</h2><p>The package provides structural diff and merge capabilities thanks to <strong>EMF Compare</strong>, any file which structures can be understood by EMF will be compared structurally, independently from the serialization format. No need to understand XMI or even binary resources to compare and merge them.</p><p><img border="0" src="https://wiki.eclipse.org/images/9/98/EMF_Compare_3.0_UI_actions.png"/></p><p>Futhermore this semantic comparison includes support for inter-file references allowing you to make sure you will never break a reference when doing your commit by forgetting a file for instance, EMF Compare will detect this and ask you to add it in your commit. This behavior can now be configured in the preference page. </p><p><img border="0" src="images/compare-resolution-strategy.png"/></p><p>Have a look on the <a href="https://wiki.eclipse.org/EMF_Compare/ReleaseReview/Luna#New_.26_Noteworthy">EMF Compare Luna New and Noteworthy</a> for further information.  </p><h2 id="EMFClientPlatformandEMFStoreincludedbydefault">EMF Client Platform and EMF Store included by default</h2><p>EMF Client Platform and EMF Store graduated and got included in the package alongside CDO. <br/>Here are some links to discover the technology : <a href="http://eclipsesource.com/blogs/tutorials/getting-started-with-the-emf-client-platform/">Getting Started with ECP</a> and the <a href="https://www.eclipse.org/ecp/documentation.html">documentation</a>  </p><h2 id="Morefeaturesincludedbutafasterpackage">More features included but a faster package</h2><p>Thanks to the commitment of the modeling projects which are in the package, plugins are now started on demand and not upfront.  This lead to a better startup time as less classes have to be loaded and less integration issue which could block users which are not even using the features which are failing.  </p><p>After Startup :</p><table><tr><th>Eclipse Release </th><th>Active plugins </th><th>Installed Plugins </th></tr><tr><td>Kepler Modeling   </td><td>118              </td><td> 538                </td></tr><tr><td>Luna Modeling     </td><td>106 <strong>(-12)</strong>      </td><td> 678 <strong>(+140)</strong>       </td></tr><tr><td>Luna Standard     </td><td>91               </td><td> 250                </td></tr></table><p>In doing so we have been able to integrate more features in the package without adding pain to peoples which are not going to use it.</p><p>Thanks again to <a href="https://www.eclipse.org/cdo/">CDO</a> , <a href="https://www.eclipse.org/sirius/">Sirius</a>  and <a href="https://www.eclipse.org/ecp/">EMF Client Platform</a> for improving their plugins in this regard !</p><h2 id="Integration">Integration</h2><p>The discovery catalog will no longer block the Eclipse user interface if you experience a slow or unreliable network. The user is now able to cancel while the catalog is being retrieved.</p><p><img border="0" src="images/discovery.png"/></p><p>Integration tests have been added, making sure every global contribution of an EPackage to the EMF registry is resolvable.</p></body></html>
\ No newline at end of file
+<?xml version='1.0' encoding='utf-8' ?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml">
+<head><meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
+	<link type="text/css" rel="stylesheet" href="https://www.eclipse.org/ecoretools/css/style.css" />
+	<link type="text/css" rel="stylesheet" href="https://www.eclipse.org/ecoretools/css/media.css" />			
+	  <!-- Custom Fonts -->
+    <link href='http://fonts.googleapis.com/css?family=Lato:300,400' rel='stylesheet' type='text/css'>
+    <link href='http://fonts.googleapis.com/css?family=Lekton:400,700' rel='stylesheet' type='text/css'>
+
+</head><body><h1 id="EclipseModelingPackageNewandNoteworthy">Eclipse Modeling Package : New and Noteworthy</h1><h2 id="GettingStarted">Getting Started</h2><p>You can download the Modeling Package for your platform on the <a href="https://www.eclipse.org/downloads/">Eclipse Download Page</a> . This package is focused on providing framework and tools to leverage models : an Ecore graphical modeler (class-like diagram), Java code generation utility for RCP applications and the EMF Framework, model comparison support, support for XSD schemas, OCL and graphical modeler runtimes. It includes a complete SDK, developer tools and source code.</p><p>This package is built and maintained by Eclipse Modeling enthusiasts. Dropping a note or in the <a href="https://www.eclipse.org/forums/index.php/f/182/">Eclipse Forum</a> to give feedback is always appreciated. </p><h2 id="RedesignedClassDiagram">Re-designed Class Diagram</h2><p>After many years of stalling, the introduction of Sirius in the Eclipse Modeling stack enabled a complete redesign of the Ecore Diagram Editor.</p><p><img border="0" src="https://www.eclipse.org/ecoretools/images/intro.png"/></p><p>A slicker design, more capabilities, more stability.</p><p>If you need to create or explore an Ecore model, or even if you only need to produce diagrams, try it, have a look <a href="https://www.eclipse.org/ecoretools/">on the brand new website</a>  and <a href="https://www.eclipse.org/forums/index.php/f/165/">give your feedback</a>  </p><h2 id="ModelComparisonandMerge">Model Comparison and Merge</h2><p>The package provides structural diff and merge capabilities thanks to <strong>EMF Compare</strong>, any file which structures can be understood by EMF will be compared structurally, independently from the serialization format. No need to understand XMI or even binary resources to compare and merge them.</p><p><img border="0" src="https://wiki.eclipse.org/images/9/98/EMF_Compare_3.0_UI_actions.png"/></p><p>Futhermore this semantic comparison includes support for inter-file references allowing you to make sure you will never break a reference when doing your commit by forgetting a file for instance, EMF Compare will detect this and ask you to add it in your commit. This behavior can now be configured in the preference page. </p><p><img border="0" src="images/compare-resolution-strategy.png"/></p><p>Have a look on the <a href="https://wiki.eclipse.org/EMF_Compare/ReleaseReview/Luna#New_.26_Noteworthy">EMF Compare Luna New and Noteworthy</a> for further information.  </p><h2 id="EMFClientPlatformandEMFStoreincludedbydefault">EMF Client Platform and EMF Store included by default</h2><p>EMF Client Platform and EMF Store graduated and got included in the package alongside CDO. <br/>Here are some links to discover the technology : <a href="http://eclipsesource.com/blogs/tutorials/getting-started-with-the-emf-client-platform/">Getting Started with ECP</a> and the <a href="https://www.eclipse.org/ecp/documentation.html">documentation</a>  </p><h2 id="Morefeaturesincludedbutafasterpackage">More features included but a faster package</h2><p>Thanks to the commitment of the modeling projects which are in the package, plugins are now started on demand and not upfront.  This lead to a better startup time as less classes have to be loaded and less integration issue which could block users which are not even using the features which are failing.  </p><p>After Startup :</p><table><tr><th>Eclipse Release </th><th>Active plugins </th><th>Installed Plugins </th></tr><tr><td>Kepler Modeling   </td><td>118              </td><td> 538                </td></tr><tr><td>Luna Modeling     </td><td>106 <strong>(-12)</strong>      </td><td> 678 <strong>(+140)</strong>       </td></tr><tr><td>Luna Standard     </td><td>91               </td><td> 250                </td></tr></table><p>In doing so we have been able to integrate more features in the package without adding pain to peoples which are not going to use it.</p><p>Thanks again to <a href="https://www.eclipse.org/cdo/">CDO</a> , <a href="https://www.eclipse.org/sirius/">Sirius</a>  and <a href="https://www.eclipse.org/ecp/">EMF Client Platform</a> for improving their plugins in this regard !</p><h2 id="Integration">Integration</h2><p>The discovery catalog will no longer block the Eclipse user interface if you experience a slow or unreliable network. The user is now able to cancel while the catalog is being retrieved.</p><p><img border="0" src="images/discovery.png"/></p><p>Integration tests have been added, making sure every global contribution of an EPackage to the EMF registry is resolvable.</p></body></html>
\ No newline at end of file
