diff --git a/dev/app/index.html b/dev/app/index.html
index 29434ad..19cd0be 100644
--- a/dev/app/index.html
+++ b/dev/app/index.html
@@ -156,7 +156,8 @@
 				</div>
 				<div class="col-md-7">
 					<h2 class="featurette-heading">More tools. <span class="text-muted">Get the full CoAP experience.</span></h2>
-					<p class="lead">(Discontinued) The Copper (Cu) CoAP user-agent is an add-on for the Firefox Web browser. It allows browsing, bookmarking, and direct interaction with CoAP resources. Simply enter a CoAP URI into the address bar. To get started you can test the following CoAP sandboxes:</p>
+					<p class="lead">The Copper (Cu) CoAP user-agent is an add-on for the Firefox Web browser. It allows browsing, bookmarking, and direct interaction with CoAP resources. Simply enter a CoAP URI into the address bar. To get started you can test the following CoAP sandboxes:</p>
+					<p class="lead"><a class="btn btn-default" href="https://github.com/mkovatsc/Copper" role="button">Hibernated &raquo;</a></p>
 					<ul>
 					<li><a href="coap://californium.eclipse.org/">coap://californium.eclipse.org/</a></li>
 					<li><a href="coap://vs0.inf.ethz.ch/">coap://vs0.inf.ethz.ch/</a></li>
diff --git a/index.html b/index.html
index 942c2f4..114b2e4 100644
--- a/index.html
+++ b/index.html
@@ -1,6 +1,6 @@
 <!DOCTYPE html><html lang=en class=no-js><head><meta charset=utf-8><title>Californium (Cf) CoAP framework</title><meta name=description content=""><meta name=viewport content="width=device-width, initial-scale=1"><link rel="shortcut icon" href=2aa2209e.favicon.ico><!-- Place favicon.ico and apple-touch-icon.png in the root directory --><link rel=stylesheet href=styles/dfc57042.vendor.css><link rel=stylesheet href=styles/cbc7464a.main.css><body><!--[if lt IE 10]>
             <p class="browsehappy">You are using an <strong>outdated</strong> browser. Please <a href="http://browsehappy.com/">upgrade your browser</a> to improve your experience.</p>
-        <![endif]--><!-- NAVBAR ================================================== --><div class="navbar navbar-inverse navbar-fixed-top" role=navigation><div class=container><div class=navbar-header><button type=button class=navbar-toggle data-toggle=collapse data-target=.navbar-collapse><span class=sr-only>Toggle navigation</span> <span class=icon-bar></span> <span class=icon-bar></span> <span class=icon-bar></span></button> <a class=navbar-brand href=#>Californium (Cf)</a></div><div class="navbar-collapse collapse"><ul class="nav navbar-nav"><li><a href=#top>About</a></li><li><a href=#sources>Sources</a></li><li><a href=#start>Getting Started</a></li><li><a href=#tools>Tools</a></li><li><a href=https://projects.eclipse.org/projects/technology.californium>Learn more</a></li></ul><ul class="nav navbar-nav pull-right"><li style=margin-top:18px><div class=g-plusone data-href="http://www.eclipse.org/californium/"></div></li><li><a class=navbar-brand2 href="http://iot.eclipse.org/">iot.eclipse.org</a></li></ul></div><!--/.nav-collapse --></div></div><!-- Carousel ================================================== --><div id=cfCarousel class="carousel slide" data-ride=carousel><!-- Indicators --><ol class=carousel-indicators><li data-target=#cfCarousel data-slide-to=0 class=active></li><li data-target=#cfCarousel data-slide-to=1></li><li data-target=#cfCarousel data-slide-to=2></li></ol><div class=carousel-inner><div class="item java active"><div class=container><div class=carousel-caption><h1>CoAP in Java.</h1><p>Californium is a powerful CoAP framework targetting back-end services communicating with smaller Internet of Things devices. Stronger Internet of Things devices may use Californium also. It provides a convenient API for RESTful Web services that support all of CoAP's features.</p></div></div></div><div class="item cloud"><div class=container><div class=carousel-caption><h1 style="text-align: left; color: orange">Perfect for IoT cloud services.</h1><p>Californium has an extremely scalable architecture and outperforms high-performance HTTP servers. CoAP's low overhead allows to handle millions of IoT devices with a single service instance. The flexible concurrency model allows to implement whatever is best for your application.</p></div></div></div><div class="item ietf"><div class=container><div class=carousel-caption><h1>Standards compliant.</h1><p>Californium has been running code for the IETF and is passing all ETSI Plugtest test specifications.</p></div></div></div></div><a class="left carousel-control" href=#cfCarousel role=button data-slide=prev><span class="glyphicon glyphicon-chevron-left"></span></a> <a class="right carousel-control" href=#cfCarousel role=button data-slide=next><span class="glyphicon glyphicon-chevron-right"></span></a></div><!-- /.carousel --><!-- Marketing messaging ================================================== --><!-- Wrap the rest of the page in another container to center all the content. --><div class=container><a name=sources></a><div class="container marketing"><!-- Three columns of text below the carousel --><div class=row><div class="col-sm-12 col-lg-6 item"><img class=img-responsive src=images/boxes/7691c7b3.Cf_box_512.png alt="Californium sources" style="max-width: 458px"><h2>Californium (Cf) core</h2><p>The project is divided into five sub-projects. The Californium (Cf) core provides the central framework with the protocol implementation to build your Internet of Things applications. This repository also includes example projects to get you started. All Californium sources are hosted on GitHub, so you can easily contribute through pull requests.</p><p>Californium (Cf) is dual-licensed under EPL and EDL. The latter is a BSD-like license, which means the Cf CoAP framework can be used together with proprietary code to implement your IoT product!</p><p>Cf is available in Maven Central and very easy to consume in your Java project. We have got your back covered from OSGi wrapper to HTTP-CoAP cross-proxy to advanced test suites that have been used at the ETSI Plugtests.</p><a class="btn btn-default" href=https://github.com/eclipse/californium role=button>Repository &raquo;</a></div><!-- /.col-lg-4 --><div class="col-sm-6 col-lg-3 item"><img class=img-responsive src=images/boxes/3efe9e3c.Sc_box_256.png alt="Scandium sources"><h2>Scandium (Sc)</h2><p>The Scandium (Sc) sub-module provides security for Californium. It implements DTLS&nbsp;1.2 to secure your application through ECC with pre-shared keys, certificates, or raw public keys.</p><a class="btn btn-default" href=https://github.com/eclipse/californium/tree/master/scandium-core role=button>Repository &raquo;</a></div><!-- /.col-lg-2 --><div class="col-sm-6 col-lg-3 item"><img class=img-responsive src=images/boxes/ded25527.Ac_box_256.png alt="Actinium sources"><h2>Actinium (Ac)</h2><p>Actinium (Ac) is the app-server for Californium to realize IoT mashups! Your JavaScript apps become available as RESTful resources and can directly talk to IoT devices using our CoapRequest object API.</p><a class="btn btn-default" href=https://github.com/eclipse/californium.actinium role=button>Repository &raquo;</a></div><!-- /.col-lg-2 --><div class="col-sm-6 col-lg-3 item"><img src=images/e6029ecb.tools.jpg alt="Tools sources" style="margin-top: 47px"><h2>CoAP tools</h2><p>This repository provides CoAP tools that also serve as examples. Use CoAPBench to benchmark your CoAP solutions or simply use our cf-client to interact with your devices from the command line.</p><a class="btn btn-default" href=https://github.com/eclipse/californium.tools role=button>Repository &raquo;</a></div><!-- /.col-lg-2 --><div class="col-sm-6 col-lg-3 item"><img src=images/33934874.connector.jpg alt="Connector sources" style="margin-top: 38px"><h2>Connector</h2><p>The element-connector abstracts from the different transports CoAP can use. It provides the basic UDPConnector as well as the interface to implement new connectors like the DtlsConnector of Scandium.</p><a class="btn btn-default" href=https://github.com/eclipse/californium/tree/master/element-connector role=button>Repository &raquo;</a></div><!-- /.col-lg-2 --></div><!-- /.row --></div><!-- Featurettes ================================================== --><a name=start></a><hr class=featurette-divider><div class="row featurette"><div class=col-md-7><h2 class=featurette-heading>Getting started. <span class=text-muted>Take the tutorial.</span></h2><p class=lead>The Internet of Things if growing, but how can you build your own connected objects? Together with MQTT, CoAP is one of the popular IoT protocols. It provides answers to the typical IoT constraints: it is bandwidth efficient and fits in constrained embedded environment while providing friendly and discoverable RESTful API.</p></div><div class=col-md-5><a href=http://goo.gl/LLQ03w><img class="featurette-image img-responsive" src=images/ee8d37bc.tutorial.jpg alt="Tutorial slides"></a></div></div><a name=tools></a><hr class=featurette-divider><div class="row featurette"><div class=col-md-5><a href="https://addons.mozilla.org/en-US/firefox/addon/copper-270430/"><img class="featurette-image img-responsive" src=images/boxes/1ad35942.Cu_box_512.png alt="More CoAP tools"></a></div><div class=col-md-7><h2 class=featurette-heading>More tools. <span class=text-muted>Get the full CoAP experience.</span></h2><p class=lead>(Discontinued) The Copper (Cu) CoAP user-agent is an add-on for the Firefox Web browser. It allows browsing, bookmarking, and direct interaction with CoAP resources. Simply enter a CoAP URI into the address bar. To get started you can test the following CoAP sandboxes:</p><ul><li><a href="coap://californium.eclipse.org/">coap://californium.eclipse.org/</a></li><li><a href="coap://vs0.inf.ethz.ch/">coap://vs0.inf.ethz.ch/</a></li><li><a href="coap://coap.me/">coap://coap.me/</a></li></ul><p class=lead>Check <a href=http://coap.technology>coap.technology</a> for more material.</p></div></div></div><div class=footer><div class=container><div class=row><div class="col-xs-12 col-sm-6 col-md-3 col-lg-3 hidden-print"><h2>Eclipse Foundation</h2><ul class=nav><li><a href="//www.eclipse.org/org/">About us</a></li><li><a href=//www.eclipse.org/org/foundation/contact.php>Contact Us</a></li><li><a href=//www.eclipse.org/donate>Donate</a></li><li><a href="//www.eclipse.org/org/documents/">Governance</a></li><li><a href="//www.eclipse.org/artwork/">Logo and Artwork</a></li><li><a href=//www.eclipse.org/org/foundation/directors.php>Board of Directors</a></li></ul></div><div class="col-xs-12 col-sm-6 col-md-3 col-lg-3 hidden-print"><h2>Legal</h2><ul class=nav><li><a href=//www.eclipse.org/legal/privacy.php>Privacy Policy</a></li><li><a href=//www.eclipse.org/legal/termsofuse.php>Terms of Use</a></li><li><a href=//www.eclipse.org/legal/copyright.php>Copyright Agent</a></li><li><a href=//www.eclipse.org/org/documents/epl-v10.php>Eclipse Public License</a></li><li><a href="//www.eclipse.org/legal/">Legal Resources</a></li></ul></div><div class="clearfix visible-sm"></div><div class="col-xs-12 col-sm-6 col-md-3 col-lg-3 hidden-print"><h2>Useful Links</h2><ul class=nav><li><a href="//bugs.eclipse.org/bugs/">Report a Bug</a></li><li><a href="//help.eclipse.org/">Documentation</a></li><li><a href="//www.eclipse.org/contribute/">How to Contribute</a></li><li><a href="//www.eclipse.org/mail/">Mailing Lists</a></li><li><a href="//www.eclipse.org/forums/">Forums</a></li><li><a href=//marketplace.eclipse.org>Marketplace</a></li></ul></div><div class="col-xs-12 col-sm-6 col-md-3 col-lg-3 hidden-print"><h2>Other</h2><ul class=nav><li><a href="//www.eclipse.org/ide/">IDE and Tools</a></li><li><a href=//www.eclipse.org/projects>Community of Projects</a></li><li><a href="//www.eclipse.org/org/workinggroups/">Working Groups</a></li></ul></div><div id=copyright class="col-xs-12 col-sm-12 col-md-12 col-lg-12 hidden-print"><div><span class=hidden-print><img src=http://projects.eclipse.org/sites/all/themes/solstice/public/images/logo/eclipse-logo-bw-800x188.png alt="Eclipse.org black and white logo" width=166 height=39 class=logo-eclipse-white></span><p id=copyright-text>Copyright &copy; 2014 The Eclipse Foundation. All Rights Reserved.</p></div></div></div></div></div><!-- Place this tag after the last +1 button tag. --><script type=text/javascript>(function() {
+        <![endif]--><!-- NAVBAR ================================================== --><div class="navbar navbar-inverse navbar-fixed-top" role=navigation><div class=container><div class=navbar-header><button type=button class=navbar-toggle data-toggle=collapse data-target=.navbar-collapse><span class=sr-only>Toggle navigation</span> <span class=icon-bar></span> <span class=icon-bar></span> <span class=icon-bar></span></button> <a class=navbar-brand href=#>Californium (Cf)</a></div><div class="navbar-collapse collapse"><ul class="nav navbar-nav"><li><a href=#top>About</a></li><li><a href=#sources>Sources</a></li><li><a href=#start>Getting Started</a></li><li><a href=#tools>Tools</a></li><li><a href=https://projects.eclipse.org/projects/technology.californium>Learn more</a></li></ul><ul class="nav navbar-nav pull-right"><li style=margin-top:18px><div class=g-plusone data-href="http://www.eclipse.org/californium/"></div></li><li><a class=navbar-brand2 href="http://iot.eclipse.org/">iot.eclipse.org</a></li></ul></div><!--/.nav-collapse --></div></div><!-- Carousel ================================================== --><div id=cfCarousel class="carousel slide" data-ride=carousel><!-- Indicators --><ol class=carousel-indicators><li data-target=#cfCarousel data-slide-to=0 class=active></li><li data-target=#cfCarousel data-slide-to=1></li><li data-target=#cfCarousel data-slide-to=2></li></ol><div class=carousel-inner><div class="item java active"><div class=container><div class=carousel-caption><h1>CoAP in Java.</h1><p>Californium is a powerful CoAP framework targetting back-end services communicating with smaller Internet of Things devices. Stronger Internet of Things devices may use Californium also. It provides a convenient API for RESTful Web services that support all of CoAP's features.</p></div></div></div><div class="item cloud"><div class=container><div class=carousel-caption><h1 style="text-align: left; color: orange">Perfect for IoT cloud services.</h1><p>Californium has an extremely scalable architecture and outperforms high-performance HTTP servers. CoAP's low overhead allows to handle millions of IoT devices with a single service instance. The flexible concurrency model allows to implement whatever is best for your application.</p></div></div></div><div class="item ietf"><div class=container><div class=carousel-caption><h1>Standards compliant.</h1><p>Californium has been running code for the IETF and is passing all ETSI Plugtest test specifications.</p></div></div></div></div><a class="left carousel-control" href=#cfCarousel role=button data-slide=prev><span class="glyphicon glyphicon-chevron-left"></span></a> <a class="right carousel-control" href=#cfCarousel role=button data-slide=next><span class="glyphicon glyphicon-chevron-right"></span></a></div><!-- /.carousel --><!-- Marketing messaging ================================================== --><!-- Wrap the rest of the page in another container to center all the content. --><div class=container><a name=sources></a><div class="container marketing"><!-- Three columns of text below the carousel --><div class=row><div class="col-sm-12 col-lg-6 item"><img class=img-responsive src=images/boxes/7691c7b3.Cf_box_512.png alt="Californium sources" style="max-width: 458px"><h2>Californium (Cf) core</h2><p>The project is divided into five sub-projects. The Californium (Cf) core provides the central framework with the protocol implementation to build your Internet of Things applications. This repository also includes example projects to get you started. All Californium sources are hosted on GitHub, so you can easily contribute through pull requests.</p><p>Californium (Cf) is dual-licensed under EPL and EDL. The latter is a BSD-like license, which means the Cf CoAP framework can be used together with proprietary code to implement your IoT product!</p><p>Cf is available in Maven Central and very easy to consume in your Java project. We have got your back covered from OSGi wrapper to HTTP-CoAP cross-proxy to advanced test suites that have been used at the ETSI Plugtests.</p><a class="btn btn-default" href=https://github.com/eclipse/californium role=button>Repository &raquo;</a></div><!-- /.col-lg-4 --><div class="col-sm-6 col-lg-3 item"><img class=img-responsive src=images/boxes/3efe9e3c.Sc_box_256.png alt="Scandium sources"><h2>Scandium (Sc)</h2><p>The Scandium (Sc) sub-module provides security for Californium. It implements DTLS&nbsp;1.2 to secure your application through ECC with pre-shared keys, certificates, or raw public keys.</p><a class="btn btn-default" href=https://github.com/eclipse/californium/tree/master/scandium-core role=button>Repository &raquo;</a></div><!-- /.col-lg-2 --><div class="col-sm-6 col-lg-3 item"><img class=img-responsive src=images/boxes/ded25527.Ac_box_256.png alt="Actinium sources"><h2>Actinium (Ac)</h2><p>Actinium (Ac) is the app-server for Californium to realize IoT mashups! Your JavaScript apps become available as RESTful resources and can directly talk to IoT devices using our CoapRequest object API.</p><a class="btn btn-default" href=https://github.com/eclipse/californium.actinium role=button>Repository &raquo;</a></div><!-- /.col-lg-2 --><div class="col-sm-6 col-lg-3 item"><img src=images/e6029ecb.tools.jpg alt="Tools sources" style="margin-top: 47px"><h2>CoAP tools</h2><p>This repository provides CoAP tools that also serve as examples. Use CoAPBench to benchmark your CoAP solutions or simply use our cf-client to interact with your devices from the command line.</p><a class="btn btn-default" href=https://github.com/eclipse/californium.tools role=button>Repository &raquo;</a></div><!-- /.col-lg-2 --><div class="col-sm-6 col-lg-3 item"><img src=images/33934874.connector.jpg alt="Connector sources" style="margin-top: 38px"><h2>Connector</h2><p>The element-connector abstracts from the different transports CoAP can use. It provides the basic UDPConnector as well as the interface to implement new connectors like the DtlsConnector of Scandium.</p><a class="btn btn-default" href=https://github.com/eclipse/californium/tree/master/element-connector role=button>Repository &raquo;</a></div><!-- /.col-lg-2 --></div><!-- /.row --></div><!-- Featurettes ================================================== --><a name=start></a><hr class=featurette-divider><div class="row featurette"><div class=col-md-7><h2 class=featurette-heading>Getting started. <span class=text-muted>Take the tutorial.</span></h2><p class=lead>The Internet of Things if growing, but how can you build your own connected objects? Together with MQTT, CoAP is one of the popular IoT protocols. It provides answers to the typical IoT constraints: it is bandwidth efficient and fits in constrained embedded environment while providing friendly and discoverable RESTful API.</p></div><div class=col-md-5><a href=http://goo.gl/LLQ03w><img class="featurette-image img-responsive" src=images/ee8d37bc.tutorial.jpg alt="Tutorial slides"></a></div></div><a name=tools></a><hr class=featurette-divider><div class="row featurette"><div class=col-md-5><a href="https://addons.mozilla.org/en-US/firefox/addon/copper-270430/"><img class="featurette-image img-responsive" src=images/boxes/1ad35942.Cu_box_512.png alt="More CoAP tools"></a></div><div class=col-md-7><h2 class=featurette-heading>More tools. <span class=text-muted>Get the full CoAP experience.</span></h2><p class=lead>The Copper (Cu) CoAP user-agent is an add-on for the Firefox Web browser. It allows browsing, bookmarking, and direct interaction with CoAP resources. Simply enter a CoAP URI into the address bar. To get started you can test the following CoAP sandboxes:</p><p class=lead><a class="btn btn-default" href=https://github.com/mkovatsc/Copper role=button>Hibernated &raquo;</a></p><ul><li><a href="coap://californium.eclipse.org/">coap://californium.eclipse.org/</a></li><li><a href="coap://vs0.inf.ethz.ch/">coap://vs0.inf.ethz.ch/</a></li><li><a href="coap://coap.me/">coap://coap.me/</a></li></ul><p class=lead>Check <a href=http://coap.technology>coap.technology</a> for more material.</p></div></div></div><div class=footer><div class=container><div class=row><div class="col-xs-12 col-sm-6 col-md-3 col-lg-3 hidden-print"><h2>Eclipse Foundation</h2><ul class=nav><li><a href="//www.eclipse.org/org/">About us</a></li><li><a href=//www.eclipse.org/org/foundation/contact.php>Contact Us</a></li><li><a href=//www.eclipse.org/donate>Donate</a></li><li><a href="//www.eclipse.org/org/documents/">Governance</a></li><li><a href="//www.eclipse.org/artwork/">Logo and Artwork</a></li><li><a href=//www.eclipse.org/org/foundation/directors.php>Board of Directors</a></li></ul></div><div class="col-xs-12 col-sm-6 col-md-3 col-lg-3 hidden-print"><h2>Legal</h2><ul class=nav><li><a href=//www.eclipse.org/legal/privacy.php>Privacy Policy</a></li><li><a href=//www.eclipse.org/legal/termsofuse.php>Terms of Use</a></li><li><a href=//www.eclipse.org/legal/copyright.php>Copyright Agent</a></li><li><a href=//www.eclipse.org/org/documents/epl-v10.php>Eclipse Public License</a></li><li><a href="//www.eclipse.org/legal/">Legal Resources</a></li></ul></div><div class="clearfix visible-sm"></div><div class="col-xs-12 col-sm-6 col-md-3 col-lg-3 hidden-print"><h2>Useful Links</h2><ul class=nav><li><a href="//bugs.eclipse.org/bugs/">Report a Bug</a></li><li><a href="//help.eclipse.org/">Documentation</a></li><li><a href="//www.eclipse.org/contribute/">How to Contribute</a></li><li><a href="//www.eclipse.org/mail/">Mailing Lists</a></li><li><a href="//www.eclipse.org/forums/">Forums</a></li><li><a href=//marketplace.eclipse.org>Marketplace</a></li></ul></div><div class="col-xs-12 col-sm-6 col-md-3 col-lg-3 hidden-print"><h2>Other</h2><ul class=nav><li><a href="//www.eclipse.org/ide/">IDE and Tools</a></li><li><a href=//www.eclipse.org/projects>Community of Projects</a></li><li><a href="//www.eclipse.org/org/workinggroups/">Working Groups</a></li></ul></div><div id=copyright class="col-xs-12 col-sm-12 col-md-12 col-lg-12 hidden-print"><div><span class=hidden-print><img src=http://projects.eclipse.org/sites/all/themes/solstice/public/images/logo/eclipse-logo-bw-800x188.png alt="Eclipse.org black and white logo" width=166 height=39 class=logo-eclipse-white></span><p id=copyright-text>Copyright &copy; 2014 The Eclipse Foundation. All Rights Reserved.</p></div></div></div></div></div><!-- Place this tag after the last +1 button tag. --><script type=text/javascript>(function() {
 			var po = document.createElement('script'); po.type = 'text/javascript'; po.async = true;
 			po.src = 'https://apis.google.com/js/plusone.js';
 			var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(po, s);
