diff --git a/Android.mk b/Android.mk
index 449ae1b..184392a 100644
--- a/Android.mk
+++ b/Android.mk
@@ -1010,7 +1010,7 @@
 		-hdf android.hasSamples true \
 		-samplesdir $(samples_dir)
 
-LOCAL_DROIDDOC_CUSTOM_TEMPLATE_DIR:=build/tools/droiddoc/templates-ndk
+LOCAL_DROIDDOC_CUSTOM_TEMPLATE_DIR:=build/tools/droiddoc/templates-sdk
 
 include $(BUILD_DROIDDOC)
 
diff --git a/docs/html-ndk/ndk/guides/guides_toc.cs b/docs/html-ndk/ndk/guides/guides_toc.cs
index 3763c53..90eaea4 100644
--- a/docs/html-ndk/ndk/guides/guides_toc.cs
+++ b/docs/html-ndk/ndk/guides/guides_toc.cs
@@ -6,7 +6,6 @@
        localized titles are added in the language order specified below.
 ?>
 
-
 <ul id="nav">
 <li><strong>NDK</strong>
    <ul>
@@ -67,6 +66,7 @@
       <li><a href="">Another Stublet</a></li>
       </ul></li>
    </ul></li>
+
 </ul>
 
 
diff --git a/docs/html-ndk/ndk/index.jd b/docs/html-ndk/ndk/index.jd
index f1c5ce6..6723ed7 100644
--- a/docs/html-ndk/ndk/index.jd
+++ b/docs/html-ndk/ndk/index.jd
@@ -1,15 +1,68 @@
+page.title=Android NDK
+page.tags="ndk, native, c, c++", 
+meta.tags="ndk, native, c++"
 fullpage=true
-page.viewport_width=970
-excludeFromSuggestions=true
-page.metaDescription=The official Android NDK developer web site.
-page.customHeadTag=<meta name="google-site-verification" content="sa-bIAI6GKvct3f61-WpRguHq-aNjtF7xJjMTSi79as" />
-
+section.landing=true
+header.hide=1
+footer.hide=1
 @jd:body
 
+<section class="dac-expand dac-hero dac-dark dac-invert" style="background-repeat:no-repeat;">
+  <div class="wrap">
+    <div class="cols dac-hero-content" style="margin-top:32px">
+      <div class="col-7of16 cdol-push-1of16">
+        <h1 class="dac-hero-title">Android NDK</h1>
+        <p class="dac-hero-description">
+        The Android NDK is a toolset that lets you implement parts of your app using native code languages such as C and C++. For certain types of apps, this can help you reuse existing code libraries written in those languages.
+        </p>
 
-<h1>SUPER FANCY NDK LANDING PAGE<h1>
+        <a class="dac-hero-cta" href="/ndk/guides/index.html">
+          <span class="dac-sprite dac-auto-chevron"></span>
+          Get Started
+        </a><br>
+      </div>
+      <div class="col-8of16 col-push-1of16" style="margin-top:48px">
 
-<p>Welcome to the placeholder text for the NDK. Here, you'll find all of the details you need to
-combine the power of native code with Android flexibility and compatibility. The documents here
-help you get started, introduce some key concepts that you should know when using the NDK, and then
-provide a variety of other information that you'll find helpful while developing your app.</p>
+        <span style="color:#00e5ff;font-family:'Roboto Mono', monospace;font-weight:400">public class <span
+        style="color:#eee">MyActivity</span> extends Activity {<br>
+              <span style="color:#ccc">&nbsp;&nbsp;/**<br>
+                &nbsp;&nbsp;* Native method implemented in C/C++<br>
+                &nbsp;&nbsp;*/</span><br>
+                &nbsp;&nbsp;public <span style="color:#1DE9B6;font-weight:700">native</span> void <span style="color:#eee">computerFoo()</span>;<br>
+              }</span>
+      </div>
+    </div>
+  </div>
+</section>
+
+<div class="wrap dac-offset-parent">
+  <a class="dac-fab dac-scroll-button" data-scroll-button href="#latest">
+    <i class="dac-sprite dac-arrow-down-gray"></i>
+  </a>
+</div>
+<section class="dac-section dac-gray dac-small dac-invert" id="latest"><div class="wrap">
+  <h2 class="norule">Latest</h2>
+  <div class="resource-widget resource-flow-layout col-16"
+       data-query="type:blog+tag:featured+tag:preview"
+       data-cardSizes="6x6"
+       data-maxResults="3"></div>
+</div></section>
+
+<section class="dac-section dac-light"><div class="wrap">
+  <h1 class="dac-section-title">Something else</h1>
+  <div class="dac-section-subtitle">
+    Placeholder
+  </div>
+
+  <ul class="dac-section-links">
+    <li class="dac-section-link"><a href="">
+      <span class="dac-sprite dac-auto-chevron"></span>
+      Overview and Usage
+    </a></li>
+    <li class="dac-section-link"><a href="/google/play/filters.html">
+      <span class="dac-sprite dac-auto-chevron"></span>
+      User Guide
+    </a></li>
+
+  </ul>
+</div></section>
diff --git a/docs/html/about/about_toc.cs b/docs/html/about/about_toc.cs
index 62d37c5..45e8eb3 100644
--- a/docs/html/about/about_toc.cs
+++ b/docs/html/about/about_toc.cs
@@ -1,11 +1,5 @@
 <ul id="nav">
 
-<li class="nav-section">
-    <div class="nav-section-header"><a href="<?cs var:toroot?>about/index.html">Welcome</a></div>
-    <ul>
-      <li><a href="<?cs var:toroot?>about/start.html">Get Started</a></li>
-    </ul>
-  </li>
   <li class="nav-section">
     <div class="nav-section-header"><a href="<?cs var:toroot ?>about/versions/lollipop.html"
               zh-tw-lang="Lollipop"
@@ -47,14 +41,20 @@
       </ul>
   </li>
 
-  <li class="nav-section">
+  <!-- <li class="nav-section">
     <div class="nav-section-header"><a href="<?cs var:toroot ?>about/versions/android-4.0-highlights.html">
       <span class="en">Ice Cream Sandwich</span></a></div>
       <ul>
         <li><a href="<?cs var:toroot ?>about/versions/android-4.0.3.html">Android 4.0.3 APIs</a></li>
         <li><a href="<?cs var:toroot ?>about/versions/android-4.0.html">Android 4.0 APIs</a> </li>
       </ul>
+  </li> -->
+
+  <li class="nav-section">
+    <div class="nav-section-header empty"><a href="<?cs
+var:toroot?>about/android.html">About Android</a></div>
   </li>
+
   <li class="nav-section">
     <div class="nav-section-header empty"><a href="<?cs
 var:toroot?>about/dashboards/index.html">Dashboards</a></div>
diff --git a/docs/html/about/android.jd b/docs/html/about/android.jd
new file mode 100644
index 0000000..ad0ea7c
--- /dev/null
+++ b/docs/html/about/android.jd
@@ -0,0 +1,111 @@
+page.title=Android, the world's most popular mobile platform
+excludeFromSuggestions=true
+walkthru=0
+header.hide=0
+
+@jd:body
+
+
+<p>Android powers hundreds of millions of mobile devices in more than 190
+countries around the world. It's the largest installed base of any mobile platform
+and growing fast&mdash;every day another million users power up their
+Android devices for the first time and start looking for apps, games,
+and other digital content. </p>
+
+
+<p>Android gives you a world-class platform for creating apps and games for
+Android users everywhere, as well as an open marketplace for distributing
+to them instantly.</p>
+
+<h3>Global partnerships and large installed base</h3>
+
+<p>Building on the contributions of the open-source Linux community and more
+than 300 hardware, software, and carrier partners, Android has rapidly become
+the fastest-growing mobile OS.</p>
+
+<blockquote>Every day more than a million new Android devices are activated worldwide.</blockquote>
+
+<p>Android’s openness has made it a favorite for consumers and developers alike,
+driving strong growth in app consumption. Android users download more than 
+billions of apps and games from Google Play each month. </p>
+
+<p>With its partners, Android is continuously pushing the boundaries of hardware and software
+forward to bring new capabilities to users and developers. For developers, 
+Android innovation lets you build powerful, differentiated applications
+that use the latest mobile technologies.</p>
+
+<h3>Rapid innovation</h3>
+
+<p>Android is continuously pushing the boundaries of hardware and software
+forward, to bring new capabilities to users and developers. For developers, the
+rapid evolution of Android technology lets you stay in front with powerful,
+differentiated applications.</p>
+
+<p>Android gives you access to the latest technologies and innovations across a
+multitude of device form-factors, chipset architectures, and price points. From
+multicore processing and high-performance graphics to state-of-the-art sensors,
+vibrant touchscreens, and emerging mobile technologies.</p>
+
+<h3>Powerful development framework</h3>
+
+<blockquote>Easily optimize a single binary for phones, tablets, and other devices.</blockquote>
+
+<p>Android gives you everything you need to build best-in-class app experiences.
+It gives you a single application model that lets you deploy
+your apps broadly to hundreds of millions of users across a wide range of
+devices&mdash;from phones to tablets and beyond.</p>
+
+<p>Android also gives you tools for creating apps that look great and take
+advantage of the hardware capabilities available on each device. It
+automatically adapts your UI to look its best on each device, while giving you
+as much control as you want over your UI on different device
+types. </p> 
+
+<p>For example, you can create a single app binary that's optimized for
+both phone and tablet form factors. You declare your UI in lightweight sets of XML
+resources, one set for parts of the UI that are common to all form factors and
+other sets for optimzations specific to phones or tablets.
+At runtime, Android applies the correct resource sets based on its screen size,
+density, locale,
+and so on.</p>
+
+
+<p>To help you develop efficiently, the <a href="{@docRoot}tools/index.html">Android 
+    Developer Tools</a>
+offer a full Java IDE with advanced features for developing, debugging, and
+packaging Android apps. Using the IDE, you can develop on any available Android
+device or create virtual devices that emulate any hardware configuration.</p>
+
+<blockquote>1.5 billion downloads a month and growing. Get your apps in front
+of millions of users at Google's scale.</blockquote>
+
+<h3>Open marketplace for distributing your apps</h3>
+
+<p>Google Play is the premier marketplace for selling and distributing Android apps.
+When you publish an app on Google Play, you reach the huge installed base of
+Android.</p>
+
+<div style="float:left;margin-right:24px;margin-top:12px;">
+<img src="{@docRoot}images/gp-device.png">
+</div>
+
+<p>As an open marketplace, Google Play puts you in control of how you sell your
+products. You can publish whenever you want, as often as you want, and to the
+customers you want. You can distribute broadly to all markets and
+devices or focus on specific segments, devices, or ranges of hardware
+capabilities.</p>
+
+<p>You can monetize in the way that works best for your business&mdash;priced or
+free, with in-app products or subscriptions&mdash;for highest engagement and
+revenues. You also have complete control of the pricing for your apps
+and in-app products and can set or change prices in any supported currency at
+any time.<p>
+
+<p>Beyond growing your customer base, Google Play helps you build visibility and
+engagement across your apps and brand. As your apps rise in popularity, Google
+Play gives them higher placement in weekly "top" charts and rankings, and for
+the best apps promotional slots in curated collections.
+</p>
+
+<p>Preinstalled on hundreds of billions of Android devices around the world,
+Google Play can be a growth engine for your business.</p>
\ No newline at end of file
diff --git a/docs/html/about/versions/lollipop.jd b/docs/html/about/versions/lollipop.jd
index 8bc7200..63a6fe9 100644
--- a/docs/html/about/versions/lollipop.jd
+++ b/docs/html/about/versions/lollipop.jd
@@ -3,47 +3,10 @@
 @jd:body
 
 
-
-
-
-
-
-
-
-
-  <div style="padding:0px 0px 0px 20px;float:right;margin:0 -10px 0 0">
-    <img src="{@docRoot}images/home/l-hero_2x.png" srcset="{@docRoot}images/home/l-hero.png 1x, {@docRoot}images/home/l-hero_2x.png 2x" width="460" height="300" >
-  </div>
-
-  <div class="landing-docs" style="float:right;clear:both;margin:68px 0 2em 3em;">
-  <div class="col-4 normal-links highlights" style="font-size:12px;">
-    <h3 id="thisd" >Key Developer Features</h3>
-    <ul style="list-style-type:none;">
-  <li><a href="#Material">Material design</a></li>
-  <li><a href="#Perf">Performance focus</a></li>
-  <li><a href="#Notifications">Notifications</a></li>
-  <li><a href="#TV">Your apps on the big screen</a></li>
-  <li><a href="#Documents">Document-centric apps</a></li>
-  <li><a href="#Connectivity">Advanced connectivity</a></li>
-  <li><a href="#Graphics">High-performance graphics</a></li>
-  <li><a href="#Audio">More powerful audio</a></li>
-  <li><a href="#Camera">Enhanced camera & video</a></li>
-  <li><a href="#Work">Android in the workplace</a></li>
-  <li><a href="#ScreenCapture">Screen capturing and sharing</a></li>
-  <li><a href="#Sensors">New types of sensors</a></li>
-  <li><a href="#WebView">Chromium WebView</a></li>
-  <li><a href="#Accessibility">Accessibility & input</a></li>
-  <li><a href="#Battery">Tools for battery-efficient apps</a></li>
-    </ul>
-  </div>
+<div style="float:right;">
+  <img src="{@docRoot}images/home/l-hero_2x.png" srcset="/images/home/l-hero.png 1x, /images/home/l-hero_2x.png 2x">
 </div>
 
-
-
-
-
-
-
 <p>Welcome to Android 5.0 Lollipop&mdash;the largest and most ambitious release for Android yet!</p>
 
 <p>This release is packed with new features for users and thousands of new APIs for developers. It extends Android even further, from phones, tablets, and wearables, to TVs and cars.</p>
@@ -55,47 +18,63 @@
 <a href="http://www.android.com/versions/lollipop-5-0/"
 >www.android.com</a>.</p>
 
+<div id="qv-wrapper">
+<div id="qv">
+  <h2>Key developer features</h2>
+  <ol>
+      <ul style="list-style-type:none;">
+        <li><a href="#Material">Material design</a></li>
+        <li><a href="#Perf">Performance focus</a></li>
+        <li><a href="#Notifications">Notifications</a></li>
+        <li><a href="#TV">Your apps on the big screen</a></li>
+        <li><a href="#Documents">Document-centric apps</a></li>
+        <li><a href="#Connectivity">Advanced connectivity</a></li>
+        <li><a href="#Graphics">High-performance graphics</a></li>
+        <li><a href="#Audio">More powerful audio</a></li>
+        <li><a href="#Camera">Enhanced camera & video</a></li>
+        <li><a href="#Work">Android in the workplace</a></li>
+        <li><a href="#ScreenCapture">Screen capturing and sharing</a></li>
+        <li><a href="#Sensors">New types of sensors</a></li>
+        <li><a href="#WebView">Chromium WebView</a></li>
+        <li><a href="#Accessibility">Accessibility & input</a></li>
+        <li><a href="#Battery">Tools for battery-efficient apps</a></li>
+      </ol>
+</div>
+</div>
+
 <p class="note">
   <strong>Note:</strong> The Android 5.1 Lollipop MR1 update is available with additional features
   and fixes. For more information, see the
   <a href="{@docRoot}about/versions/android-5.1.html">Android 5.1 API Overview</a>.
 </p>
 
-
 <h2 id="Material">Material design</h2>
 
 <p>Android 5.0 brings <a href="http://www.google.com/design/spec">Material design</a> to Android and gives you an expanded UI toolkit for integrating the new design patterns easily in your apps.  </p>
 
-
-
 <p>New <strong>3D views</strong> let you set a z-level to raise elements off of the view hierarchy and cast <strong>realtime shadows</strong>, even as they move.</p>
 
-
 <p>Built-in <strong>activity transitions</strong> take the user seamlessly from one state to another with beautiful, animated motion. The material theme adds transitions for your activities, including the ability to use <strong>shared visual elements</strong> across activities.</p>
 
-
-
-<div style="width:290px;margin-right:35px;float:left">
+<div style="float:left;max-width:280px;margin-right:1em;">
   <div class="framed-nexus5-port-span-5">
   <video class="play-on-hover" autoplay="">
-    <source src="/design/material/videos/ContactsAnim.mp4">
-    <source src="/design/videos/ContactsAnim.webm">
-    <source src="/design/videos/ContactsAnim.ogv">
+    <source src="{@docRoot}design/material/videos/ContactsAnim.mp4">
+    <source src="{@docRoot}design/videos/ContactsAnim.webm">
+    <source src="{@docRoot}design/videos/ContactsAnim.ogv">
   </video>
-  </div>
-  <div style="font-size:10pt;margin-left:20px;margin-bottom:30px">
+</div>
+  <p style="img-caption">
     <em>To replay the movie, click on the device screen</em>
-  </div>
+  </p>
 </div>
 
-
-<p>Ripple animations are available for buttons, checkboxes, and other touch controls in your app.
+<p>Ripple animations are available for buttons, checkboxes, and other touch controls in your app.</p>
 
 <p>You can also define vector drawables in XML and animate them in a variety of ways. Vector drawables scale without losing definition, so they are perfect for single-color in-app icons.</p>
 
 <p>A new system-managed processing thread called <strong>RenderThread</strong> keeps animations smooth even when there are delays in the main UI thread. </p>
 
-
 <h2 id="Perf">Performance focus</h2>
 
 <p>Android 5.0 provides a faster, smoother and more powerful computing experience.</p>
@@ -112,9 +91,12 @@
 
 <h2 id="Notifications">Notifications</h2>
 
+<div style="float:right;clear:left;margin:1em;">
+<img src="{@docRoot}images/versions/notification-headsup.png" />
+</div>
+
 <p>Notifications in Android 5.0 are more visible, accessible, and configurable. </p>
 
-<img src="{@docRoot}images/versions/notification-headsup.png" style="float:right; margin:0 0 40px 60px" width="300" height="224" />
 
 <p>Varying notification details may appear <strong>on the lock screen</strong> if desired by the user. Users may elect to allow none, some, or all notification content to be shown on a secure lock screen. </p>
 
@@ -124,8 +106,6 @@
 
 <p>A new media notification template provides consistent media controls for notifications with up to 6 action buttons, including custom controls such as "thumbs up"&mdash;no more need for RemoteViews!</p>
 
-
-
 <h2 id="TV">Your apps on the big screen</h2>
 
 <p><a href="http://developer.android.com/tv/index.html">Android TV</a> provides a complete TV platform for your app's big screen experience. Android TV is centered around a simplified home screen experience that allows users to discover content easily, with personalized recommendations and voice search.</p>
@@ -136,12 +116,14 @@
 
 <p>The TV Input Framework provides access to a wide variety of live TV input sources and brings them together in a single user interface for users to browse, view, and enjoy content. Building a TV input service for your content can help make your content more accessible on TV devices.</p>
 
-
-
-<img src="{@docRoot}images/versions/recents_screen_2x.png" srcset="{@docRoot}images/versions/recents_screen.png 1x, {@docRoot}images/versions/recents_screen_2x.png 2x" style="float:right; margin:0 0 40px 60px" width="300" height="521" />
-
 <h2 id="Documents">Document-centric apps</h2>
 
+<div style="float:right;margin:1em;max-width:320px">
+<img src="{@docRoot}images/versions/recents_screen_2x.png"
+    srcset="/images/versions/recents_screen.png 1x, /images/versions/recents_screen_2x.png 2x" />
+<p class="img-caption">Document-centric recents.</p>
+</div>
+
 <p>Android 5.0 introduces a redesigned Overview space (formerly called Recents) that’s more versatile and useful for multitasking.</p>
 
 <p>New APIs allow you to show separate activities in your app as individual documents alongside other recent screens.</p>
@@ -149,7 +131,6 @@
 <p>You can take advantage of concurrent documents to provide users instant access to more of your content or services. For example, you might use concurrent documents to represent files in a productivity app, player matches in a game, or chats in a messaging app. </p>
 
 
-
 <h2 id="Connectivity">Advanced connectivity</h2>
 
 <p>Android 5.0 adds new APIs that allow apps to perform concurrent operations with <strong>Bluetooth Low Energy</strong> (BLE), allowing both scanning (central mode) and advertising (peripheral mode).</p>
@@ -164,14 +145,13 @@
 
 <p>Support for <strong><a href="http://www.khronos.org/opengles/3_X/">Khronos OpenGL ES 3.1</a></strong> now provides games and other apps the highest-performance 2D and 3D graphics capabilities on supported devices. </p>
 
-<p>OpenGL ES 3.1 adds compute shaders, stencil textures, accelerated visual effects, high quality ETC2/EAC texture compression, advanced texture rendering, standardized texture size and render-buffer formats, and more.</p>
-
-
-<div class="figure" style="width:350px; margin:0 0 0 60px">
-<img src="{@docRoot}images/versions/rivalknights.png" style="float:right;" width="350" height="525" />
+<div style="float:right;margin:1em;max-width:350px">
+<img src="{@docRoot}images/versions/rivalknights.png"  />
 <p class="img-caption">Gameloft's Rival Knights uses ASTC (Adaptive Scalable Texture Compression) from AEP and Compute Shaders from ES 3.1 to deliver HDR (High Dynamic Range) Bloom effects and provide more graphical detail.</p>
 </div>
 
+<p>OpenGL ES 3.1 adds compute shaders, stencil textures, accelerated visual effects, high quality ETC2/EAC texture compression, advanced texture rendering, standardized texture size and render-buffer formats, and more.</p>
+
 <p>Android 5.0 also introduces the <strong>Android Extension Pack</strong> (AEP), a set of OpenGL ES extensions that give you access to features like tessellation shaders, geometry shaders, ASTC texture compression, per-sample interpolation and shading, and other advanced rendering capabilities. With AEP you can deliver high-performance graphics across a range of GPUs.</p>
 
 
@@ -187,7 +167,7 @@
 
 <p>Android now includes support for standard <strong>USB audio</strong> peripherals, allowing users to connect USB headsets, speakers, microphones, or other high performance digital peripherals. Android 5.0 also adds support for <strong>Opus</strong> audio codecs.</p>
 
-<p>New <strong>{@link android.media.session.MediaSession}</strong> APIs for controlling media playback now make it easier to provide consistent media controls across screens and other controllers.</p>
+<p>New <strong><code><a href="{@docRoot}reference/android/media/session/MediaSession.html">MediaSession</a></code></strong> APIs for controlling media playback now make it easier to provide consistent media controls across screens and other controllers.</p>
 
 
 <h2 id="Camera">Enhanced camera &amp; video</h2>
@@ -203,19 +183,17 @@
 <p>Android 5.0 also adds support for <strong>multimedia tunneling</strong> to provide the best experience for ultra-high definition (4K) content and the ability to play compressed audio and video data together. </p>
 
 
+<h2 id="Work">Android in the workplace</h2>
 
-<div class="figure" style="width:320px; margin:1em 0 0 20px;padding-left:2em;">
-<img style="float:right; margin:0 1em 1em 2em"
+<div style="float:right;margin:1em;max-width:330px">
+<img 
     src="{@docRoot}images/android-5.0/managed_apps_launcher@2x.png"
-    srcset="{@docRoot}images/android-5.0/managed_apps_launcher@2x.png 2x"
-    alt="" width="300" />
+    srcset="/images/android-5.0/managed_apps_launcher@2x.png 2x"
+    alt="" />
 <p class="img-caption">Users have a unified view of their personal and work apps, which are
 badged for easy identification.</p>
 </div>
 
-
-<h2 id="Work">Android in the workplace</h2>
-
 <p>To enable bring-your-own-device for enterprise environments, a new
 <a href="{@docRoot}about/versions/android-5.0.html#Enterprise">managed provisioning process</a>
 creates a secure work profile on the device. In the launcher, apps are shown with a Work badge to
@@ -231,8 +209,6 @@
 issue these devices with a device owner app already installed that
 can configure global device settings.</p>
 
-
-
 <h2 id="ScreenCapture">Screen capturing and sharing</h2>
 
 <p>Android 5.0 lets you add screen capturing and screen sharing capabilities to your app. </p>
@@ -247,14 +223,13 @@
 <p>New <strong>interaction composite sensors</strong> are now available to detect special interactions such as a <em>wake up</em> gesture, a <em>pick up</em> gesture, and a <em>glance</em> gesture.</p>
 
 
-
 <h2 id="WebView">Chromium WebView</h2>
 
 <div style="float:right;margin:1em 2em 1em 2em;">
-  <img src="/images/kk-chromium-icon.png" alt="" height="160" style="margin-bottom:0em;">
+  <img src="{@docRoot}images/kk-chromium-icon.png" alt="" height="160" style="margin-bottom:0em;">
 </div>
 
-<p>The initial release for Android 5.0 includes a version of Chromium for {@link android.webkit.WebView} based on the Chromium M37 release, adding support for <strong>WebRTC</strong>, <strong>WebAudio</strong>, and <strong>WebGL</strong>. </p>
+<p>The initial release for Android 5.0 includes a version of Chromium for <code><a href="{@docRoot}reference/android/webkit/WebView.html">WebView</a></code> based on the Chromium M37 release, adding support for <strong>WebRTC</strong>, <strong>WebAudio</strong>, and <strong>WebGL</strong>. </p>
 
 <p>Chromium M37 also includes native support for all of the <strong>Web Components</strong> specifications: Custom Elements, Shadow DOM, HTML Imports, and Templates. This means you can use <a href="http://polymer-project.org/">Polymer</a> and its <a href="https://www.polymer-project.org/docs/elements/material.html">material design elements</a> in a WebView without needing polyfills.</p>
 
@@ -262,8 +237,6 @@
 
 <p>As new versions of Chromium become available, users can update from Google Play to ensure they get the latest enhancements and bug fixes for WebView, providing the latest web APIs and bug fixes for apps using WebView on Android 5.0 and higher.</p>
 
-
-
 <h2 id="Accessibility">Accessibility &amp; input</h2>
 
 <p>New accessibility APIs can retrieve detailed information about the properties of windows on the screen that sighted users can interact with and define standard or customized input actions for UI elements.</p>
@@ -271,13 +244,12 @@
 <p>New Input method editor (IME) APIs enable faster switching to other IMEs directly from the input method.</p>
 
 
-
 <h2 id="Battery">Tools for building battery-efficient apps</h2>
 
 <p>New <strong>job scheduling</strong> APIs allow you optimize battery life by deferring jobs for the system to run at a later time or under specified conditions, such as when the device is charging or connected to Wi-Fi.</p>
 
 <p>A new <code>dumpsys batterystats</code> command generates <strong>battery usage statistics</strong> that you can use to understand system-wide power use and understand the impact of your app on the device battery. You can look at a history of power events, approximate power use per UID and system component, and more.</p>
 
-<img src="{@docRoot}images/versions/battery_historian.png" srcset="{@docRoot}images/versions/battery_historian@2x.png 2x" alt="" width="760" height="462" />
+<img src="{@docRoot}images/versions/battery_historian.png" srcset="/images/versions/battery_historian@2x.png 2x" alt="" width="760" height="462" />
 <p class="img-caption">Battery Historian is a new tool to convert the statistics from <code>dumpsys batterystats</code> into a visualization for battery-related debugging. You can find it at <a href="https://github.com/google/battery-historian"
->https://github.com/google/battery-historian</a>.</p>
+>https://github.com/google/battery-historian</a>.</p>
\ No newline at end of file
diff --git a/docs/html/auto/index.jd b/docs/html/auto/index.jd
index ca63a54..66ea15a 100644
--- a/docs/html/auto/index.jd
+++ b/docs/html/auto/index.jd
@@ -3,7 +3,7 @@
 fullpage=true
 no_footer_links=true
 page.type=about
-page.image=/auto/images/hero.jpg
+page.image=/images/cards/android-auto_2x.png
 
 @jd:body
 
@@ -12,9 +12,6 @@
 #jd-content>.content-footer.wrap {
   display:none;
 }
-#hero-height {
-  height:calc(100% - 100px);
-}
 .img-logo {
   margin:0 auto;
   display:block;
diff --git a/docs/html/design/building-blocks/buttons.jd b/docs/html/design/building-blocks/buttons.jd
deleted file mode 100644
index e698f38..0000000
--- a/docs/html/design/building-blocks/buttons.jd
+++ /dev/null
@@ -1,99 +0,0 @@
-page.title=Buttons
-page.tags=button,input
-@jd:body
-
-<a class="notice-designers-material"
-  href="http://www.google.com/design/spec/components/buttons.html">
-  <div>
-    <h3>Material Design</h3>
-    <p>Buttons<p>
-  </div>
-</a>
-
-<a class="notice-developers" href="{@docRoot}guide/topics/ui/controls/button.html">
-  <div>
-    <h3>Developer Docs</h3>
-    <p>Buttons</p>
-  </div>
-</a>
-
-<p itemprop="description">A button consists of text and/or an image that clearly communicates what action
-  will occur when the user touches it. A button can have an image, text, or both.
-</p>
-
-<div class="layout-content-row" style="margin-top:22px">
-  <div class="layout-content-col span-3">
-    <img src="{@docRoot}design/media/icon_magnifying_glass.png" style="height:64px;padding:20px 0 0 40px;">
-  </div>
-  <div class="layout-content-col span-3">
-    <img src="{@docRoot}design/media/buttons_text.png"  style="height:94px;">
-  </div>
-  <div class="layout-content-col span-7">
-    <img src="{@docRoot}design/media/buttons_image_and_text.png"  style="height:94px;">
-  </div>
-</div>
-
-<div class="layout-content-row" style="margin-top:0;">
-  <div class="layout-content-col span-3">
-      <p>An image alone works best when the action can be represented by a symbol that's well understood.</p>
-  </div>
-  <div class="layout-content-col span-3">
-      <p>Text alone is most appropriate for actions that would be difficult to
-      represent visually, or are critical to convey in words to avoid any ambiguity.</p>
-  </div>
-  <div class="layout-content-col span-7">
-    <p>
-      Both an icon and text is most appropriate when they complement each other:
-      each carrying its own bit of information, but together making a larger whole.
-    </p>
-
-    <p>
-      For example, in a birthday reminder card in Google Now, the button's text
-      describes the action while its image indicates that the action will be done
-      in Google+.
-    </p>
-  </div>
-</div>
-
-<h3>What about button backgrounds?</h3>
-
-<div class="layout-content-row">
-  <div class="layout-content-col span-6">
-    <p>For <strong>image-only</strong> buttons, a background isn't necessary because
-    users are accustomed to interacting with objects.</p>
-
-    <div class="layout-content-row" style="margin-left:72px">
-      <div class="layout-content-col span-2">
-        <div class="do-dont-label bad emulate-content-left-padding" style="width:30px">Don't</div>
-        <img src="{@docRoot}design/media/buttons_image_bg_dont.png" style="padding-left:14px;">
-      </div>
-      <div class="layout-content-col span-2" style="width:29px;margin-left:10px;">
-        <div class="do-dont-label good"><strong>Do</strong></div>
-        <img src="{@docRoot}design/media/icon_alarm.png" style="width:31px;padding-top:7px;">
-      </div>
-    </div>
-  </div>
-
-<div class="layout-content-col span-7">
-<p>
-  For buttons <strong>with text</strong>, a background is also usually
-  unnecessary. To invite users to touch, phrase it as a clear action (e.g.
-  "Start", "Sign in") and use different color and formatting than the screen's
-  usual body text.
-</p>
-
-<p>
-  Use buttons with backgrounds sparingly. Because they have a heavy appearance,
-  they work best when there's only one or two of them on the screen. They're
-  most appropriate for:
-</p>
-
-<ul>
-  <li>A call to action you really want users to pursue (e.g. "Sign up")</li>
-  <li>A key decision point (e.g. "Accept" / "Decline")</li>
-  <li>When the user is about to commit a significant action (e.g. "Erase
-  everything", "Buy now")</li>
-</ul>
-</div>
-</div>
-
diff --git a/docs/html/design/building-blocks/dialogs.jd b/docs/html/design/building-blocks/dialogs.jd
deleted file mode 100644
index 9c91abf..0000000
--- a/docs/html/design/building-blocks/dialogs.jd
+++ /dev/null
@@ -1,186 +0,0 @@
-page.title=Dialogs
-page.tags=dialog,alert,popup,toast
-@jd:body
-
-<a class="notice-designers-material"
-  href="http://www.google.com/design/spec/components/dialogs.html">
-  <div>
-    <h3>Material Design</h3>
-    <p>Dialogs<p>
-  </div>
-</a>
-
-<a class="notice-developers" href="{@docRoot}guide/topics/ui/dialogs.html">
-  <div>
-    <h3>Developer Docs</h3>
-    <p>Dialogs</p>
-  </div>
-</a>
-
-<p itemprop="description">Dialogs prompt the user for decisions or additional information required by the app to continue a
-task. Such requests can range from simple Cancel/OK decisions to more complex layouts asking the
-user to adjust settings or enter text.</p>
-
-<img src="{@docRoot}design/media/dialogs_main.png">
-
-<div class="with-callouts">
-
-<ol>
-  <li>
-  <h4>Optional title region</h4>
-  <p>The title introduces the content of your dialog. It can, for example, identify the name of a
-   setting that the user is about to change, or request a decision.</p>
-  </li>
-  <li>
-  <h4>Content area</h4>
-  <p>Dialog content varies widely. For settings dialogs, a dialog may contain UI elements such as
-   sliders, text fields, checkboxes, or radio buttons that allow the user to change app or system
-   settings. In other cases, such as alerts, the content may consist solely of text that provides
-   further context for a user decision.</p>
-  </li>
-
-  <li>
-  <h4>Action buttons</h4>
-  <p>Action buttons are typically Cancel and/or OK, with OK indicating the preferred or most likely action. However, if the options consist of specific actions such as Close or Wait rather than a confirmation or cancellation of the action described in the content, then all the buttons should be active verbs. Order actions following these rules:</p>
-    <ul>
-
-    <li>The dismissive action of a dialog is always on the left. Dismissive actions return to the user to the previous state.</li>
-    <li>The affirmative actions are on the right. Affirmative actions continue progress toward the user goal that triggered the dialog.</li>
-    </ul>
-  </li>
-</ol>
-</div>
-
-<img src="{@docRoot}design/media/dialogs_examples.png">
-<div class="figure-caption">
-  Samples of typical dialog use in Android.
-</div>
-
-<h2 id="alerts">Alerts</h2>
-
-<p>Alerts inform the user about a situation that requires their confirmation or acknowledgement before
-proceeding. They differ slightly in appearance based upon the severity and impact of the message
-conveyed.</p>
-
-<div class="layout-content-row">
-  <div class="layout-content-col span-8">
-
-    <img src="{@docRoot}design/media/dialogs_w_no_title.png">
-
-  </div>
-  <div class="layout-content-col span-5">
-
-<h4>Alerts without title bars</h4>
-<p>Most alerts don't need titles. Usually the decision doesn't have a severe impact and can be summed
-up succinctly in a sentence or two. The content area should either ask a question (such as "Delete
-this conversation?") or make a clear statement whose relationship to the action buttons is obvious.</p>
-
-  </div>
-</div>
-
-
-<div class="layout-content-row">
-  <div class="layout-content-col span-8">
-
-    <img src="{@docRoot}design/media/dialogs_w_title.png">
-
-  </div>
-  <div class="layout-content-col span-5">
-
-<h4>Alerts with title bars</h4>
-<p>Use alerts with title bars sparingly. They are appropriate only when a high-risk operation involving
-potential loss of data, connectivity, extra charges, and so on requires a clear question or
-statement (the title) and some additional explanation (in the content area).</p>
-<p>Keep the question or statement short: for example, "Erase USB storage?" Avoid apologies. A user
-should be able to skip the content completely and still have a clear idea of what choices are
-available based on the title and the text of the action buttons.</p>
-
-  </div>
-</div>
-<p>When crafting a confirmation dialog, make the title meaningful by echoing the requested action.</p>
-
-<div class="layout-content-row">
-  <div class="layout-content-col span-4">
-    <div class="do-dont-label bad">Don't</div>
-      <table class="ui-table bad">
-      <thead>
-        <tr>
-          <th class="label">
-          Are you sure?
-          </th>
-        </tr>
-      </thead>
-      </table>
-  </div>
-  <div class="layout-content-col span-4">
-    <div class="do-dont-label bad">Don't</div>
-      <table class="ui-table bad">
-      <thead>
-        <tr>
-          <th class="label">
-          Warning!
-          </th>
-        </tr>
-      </thead>
-      </table>
-  </div>
-  <div class="layout-content-col span-5">
-    <div class="do-dont-label good">Do</div>
-      <table class="ui-table good">
-      <thead>
-        <tr>
-          <th class="label">
-          Erase USB storage?
-          </th>
-        </tr>
-      </thead>
-      </table>
-  </div>
-</div>
-
-
-<h2 id="popups">Popups</h2>
-
-<p>Popups are lightweight version of dialogs that require a single selection from the user. Popups
-don't have have explicit buttons that accept or cancel the operation. Instead, making a selection
-advances the workflow, and simply touching outside the popup dismisses it.</p>
-
-<img src="{@docRoot}design/media/dialogs_popups_example.png">
-
-
-<h2 id="toasts">Toasts</h2>
-
-
-<div class="layout-content-row">
-  <div class="layout-content-col span-6">
-
-    <div class="vspace size-3"></div>
-
-<p>Toasts provide lightweight feedback about an operation in a small popup. For example, navigating
-away from an email before you send it triggers a "Draft saved" toast to let you know that you can
-continue editing later. Toasts automatically disappear after a timeout.</p>
-
-<a class="notice-designers-material left"
-  href="http://www.google.com/design/spec/components/snackbars-toasts.html">
-  <div>
-    <h3>Material Design</h3>
-    <p>Toasts<p>
-  </div>
-</a>
-
-
-<a class="notice-developers left" href="{@docRoot}guide/topics/ui/notifiers/toasts.html">
-  <div>
-    <h3>Developer Docs</h3>
-    <p>Toasts</p>
-  </div>
-</a>
-
-  </div>
-  <div class="layout-content-col span-7">
-
-    <img src="{@docRoot}design/media/dialogs_toasts.png">
-
-  </div>
-</div>
-
diff --git a/docs/html/design/building-blocks/grid-lists.jd b/docs/html/design/building-blocks/grid-lists.jd
deleted file mode 100644
index ac3a3ebf..0000000
--- a/docs/html/design/building-blocks/grid-lists.jd
+++ /dev/null
@@ -1,96 +0,0 @@
-page.title=Grid Lists
-page.tags=gridview,layout,listview
-@jd:body
-
-<img src="{@docRoot}design/media/gridview_overview.png">
-
-
-<a class="notice-designers-material"
-  href="http://www.google.com/design/spec/components/grid-lists.html">
-  <div>
-    <h3>Material Design</h3>
-    <p>Grid lists<p>
-  </div>
-</a>
-
-<a class="notice-developers" href="{@docRoot}guide/topics/ui/layout/gridview.html">
-  <div>
-    <h3>Developer Docs</h3>
-    <p>Grid View</p>
-  </div>
-</a>
-
-<p itemprop="description">Grid lists are an alternative to standard list views. They are best suited for showing data sets
-that represent themselves through images. In contrast to simple lists, grid lists may scroll either
-vertically or horizontally.</p>
-
-
-
-<h2 id="generic_grid">Generic Grids</h2>
-
-
-<p>The items in a grid list are arranged in two dimensions, one of which is fixed when scrolling
-content. The scrolling direction dictates the ordering of the items within the grid list. Since the
-scrolling direction is not deterministic, make it easy for the user to determine the orientation by
-cutting off grid items to communicate where the overflow is located.</p>
-<p>Avoid creating grid lists that scroll in two dimensions.</p>
-
-
-<div class="layout-content-row">
-  <div class="layout-content-col span-7">
-
-    <img src="{@docRoot}design/media/gridview_vertical.png">
-
-  </div>
-  <div class="layout-content-col span-6">
-
-<h4>Vertical scrolling</h4>
-<p>Vertically scrolling grid list items are sorted in traditional western reading direction:
-left-to-right and top-down. When displaying the list, cut off the items in the bottom row to
-communicate that the user can scroll the list down to show additional items. Be sure to retain this
-scheme when the user rotates the screen.</p>
-
-  </div>
-</div>
-
-<div class="layout-content-row">
-  <div class="layout-content-col span-7">
-
-    <img src="{@docRoot}design/media/gridview_horizontal.png">
-
-  </div>
-  <div class="layout-content-col span-6">
-
-<h4>Horizontal scrolling</h4>
-<p>Horizontally scrolling lists fix the vertical axis of the item grid. Compared to vertically
-scrolling lists, the sorting changes slightly to a top-down and left-to-right arrangement. Employ
-the same technique of cutting off the items in the rightmost column to indicate the scrolling
-direction.</p>
-<p>Don't use scrolling tabs as a means to switch views in conjunction with horizontally scrolling grid
-lists, because the horizontal gesture for view and content navigation will conflict. If you show
-scrolling tabs for view navigation together with a grid list, use vertical grid scrolling for list
-navigation.</p>
-
-  </div>
-</div>
-
-
-<h2 id="with-labels">Grid List with Labels</h2>
-
-<p>Use labels to display additional contextual information for your grid list items.</p>
-
-
-<div class="layout-content-row">
-  <div class="layout-content-col span-7">
-
-    <img src="{@docRoot}design/media/gridview_style.png">
-
-  </div>
-  <div class="layout-content-col span-6">
-
-<h4>Style</h4>
-<p>Use semi-transparent panels on top of the grid list items to display your labels. This allows you to
-control the contrast and ensures legibility of the labels while letting the content "shine through".</p>
-
-  </div>
-</div>
diff --git a/docs/html/design/building-blocks/index.jd b/docs/html/design/building-blocks/index.jd
deleted file mode 100644
index 7fb0e55..0000000
--- a/docs/html/design/building-blocks/index.jd
+++ /dev/null
@@ -1,30 +0,0 @@
-page.title=Building Blocks
-header.justLinks=1
-footer.hide=1
-@jd:body
-
-<style>
-#landing-graphic-container {
-  position: relative;
-}
-
-#text-overlay {
-  position: absolute;
-  left: 0;
-  top: 520px;
-  width: 450px;
-}
-</style>
-
-<div id="landing-graphic-container">
-  <div id="text-overlay">
-    <span itemprop="description">Your inventory of ready-to-use elements for creating
-    outstanding apps.</span>
-    <br><br>
-    <a href="{@docRoot}design/building-blocks/tabs.html" class="landing-page-link">Tabs</a>
-  </div>
-
-  <a href="{@docRoot}design/building-blocks/tabs.html">
-    <img src="{@docRoot}design/media/building_blocks_landing.png">
-  </a>
-</div>
diff --git a/docs/html/design/building-blocks/lists.jd b/docs/html/design/building-blocks/lists.jd
deleted file mode 100644
index 6f69feb..0000000
--- a/docs/html/design/building-blocks/lists.jd
+++ /dev/null
@@ -1,56 +0,0 @@
-page.title=Lists
-page.tags=listview,layout
-@jd:body
-
-<a class="notice-designers-material"
-  href="http://www.google.com/design/spec/components/lists.html">
-  <div>
-    <h3>Material Design</h3>
-    <p>Lists<p>
-  </div>
-</a>
-
-<p itemprop="description">Lists present multiple line items in a vertical arrangement. They can be used for data selection as
-well as drilldown navigation.</p>
-
-<div class="vspace size-1">&nbsp;</div>
-
-<div class="layout-content-row clearfix">
-  <div class="layout-content-col span-9">
-
-    <img src="{@docRoot}design/media/lists_main.png">
-
-  </div>
-  <div class="layout-content-col span-4 with-callouts">
-
-<ol style="margin-bottom: 60px;">
-<li>
-<h4>Section Divider</h4>
-<p>Use section dividers to organize the content of your list into groups and facilitate scanning.</p>
-</li>
-<li>
-<h4>Line Items</h4>
-<p>List items can accommodate a wide range of data types in different arrangements, including
- simple single-line items, multi-line items, and custom items with icons, checkboxes, and action
- buttons.</p>
-</li>
-</ol>
-
-<a class="notice-developers" href="{@docRoot}guide/topics/ui/layout/listview.html">
-  <div>
-    <h3>Developer Docs</h3>
-    <p>List View</p>
-  </div>
-</a>
-
-<a class="notice-designers-material"
-  href="http://www.google.com/design/spec/components/lists-controls.html">
-  <div>
-    <h3>Material Design</h3>
-    <p>Lists: Controls<p>
-  </div>
-</a>
-
-
-  </div>
-</div>
diff --git a/docs/html/design/building-blocks/pickers.jd b/docs/html/design/building-blocks/pickers.jd
deleted file mode 100644
index fb5e287..0000000
--- a/docs/html/design/building-blocks/pickers.jd
+++ /dev/null
@@ -1,40 +0,0 @@
-page.title=Pickers
-page.tags=datepicker,timepicker
-@jd:body
-
-<a class="notice-developers" href="{@docRoot}guide/topics/ui/controls/pickers.html">
-  <div>
-    <h3>Developer Docs</h3>
-    <p>Pickers</p>
-  </div>
-</a>
-
-<p itemprop="description">Pickers provide a simple way to select a single value from a set. In addition to touching the
-up/down arrow buttons, it's possible to set the desired value from the keyboard or via a swipe
-gesture.</p>
-
-<div class="layout-content-row">
-  <div class="layout-content-col span-6">
-
-    <img src="{@docRoot}design/media/picker_space.png">
-
-  </div>
-  <div class="layout-content-col span-6">
-
-<h4>Space considerations</h4>
-<p>Pickers can be used inline on a form, but their relatively large footprint is best suited for
-display in a dialog. For inline display, consider using more compact controls such as text fields or
-spinners.</p>
-
-  </div>
-</div>
-
-<h2 id="date-time">Date and time pickers</h2>
-
-<p>Android provides these as ready-to-use dialogs. Each picker is a dialog with a set of controls for
-entering the parts of the date (month, day, year) or time (hour, minute, AM/PM). Using these in your
-app helps ensure that a user's specification of a data or time input is valid and formatted
-correctly. The format of a time and date picker adjusts automatically to the locale.</p>
-
-<img src="{@docRoot}design/media/picker_datetime.png">
-
diff --git a/docs/html/design/building-blocks/progress.jd b/docs/html/design/building-blocks/progress.jd
deleted file mode 100644
index 2de75dc..0000000
--- a/docs/html/design/building-blocks/progress.jd
+++ /dev/null
@@ -1,105 +0,0 @@
-page.title=Progress &amp; Activity
-page.tags=progressbar,download,network
-@jd:body
-
-<a class="notice-designers-material"
-  href="http://www.google.com/design/spec/components/progress-activity.html">
-  <div>
-    <h3>Material Design</h3>
-    <p>Progress and Activity<p>
-  </div>
-</a>
-
-<p>Progress bars and activity indicators signal to users that something is happening that will take a moment.</p>
-<h2 id="progress">Progress bars</h2>
-
-<p>Progress bars are for situations where the percentage completed can be determined. They give users a quick sense of how much longer an operation will take.</p>
-
-<img src="{@docRoot}design/media/progress_download.png">
-
-<p>A progress bar should always fill from 0% to 100% and never move backwards to a lower value. If multiple operations are happening in sequence, use the progress bar to represent the delay as a whole, so that when the bar reaches 100%, it doesn't return back to 0%.</p>
-
-<div class="vspace size-2">&nbsp;</div>
-
-<img src="{@docRoot}design/media/progress_themes.png">
-<div class="figure-caption">
-  Progress bar in Holo Dark and Holo Light.
-</div>
-
-<h2 id="activity">Activity indicators</h2>
-
-<p>Activity indicators are for operations of an indeterminate length. They ask users to wait a moment while something finishes up, without getting into specifics about what's happening behind the scenes.</p>
-
-<p>Two styles are available: a bar and a circle. Each is offered in a variety of sizes, in both Holo Light and Holo Dark themes. Choose the appropriate style and size for the surrounding context. For example, the largest activity circle works well when displayed in a blank content area, but not in a smaller dialog box. Each operation should only be represented by one activity indicator.</p>
-
-<div class="layout-content-row">
-  <div class="layout-content-col span-6">
-
-    <img src="{@docRoot}design/media/progress_activity.png">
-
-  </div>
-  <div class="layout-content-col span-7 with-callouts">
-
-    <ol>
-      <li class="value-1"><h4>Activity bar</h4>
-        <p>In this example, an activity bar (in Holo Dark) appears when a user first requests a download. There's an unknown period of time when the download has not yet started. As soon as the download starts, this activity bar transforms into a progress bar.</p>
-      </li>
-    </ol>
-
-  </div>
-</div>
-
-<div class="layout-content-row">
-  <div class="layout-content-col span-6">
-
-    <img src="{@docRoot}design/media/progress_activity2.png">
-
-  </div>
-  <div class="layout-content-col span-7 with-callouts">
-
-    <ol>
-      <li class="value-2"><h4>Activity circle</h4>
-        <p>In this example, an activity circle (in Holo Light) is used in the Gmail application when a message is being loaded because it's not possible to determine how long it will take to download the email.</p>
-        <p>When displaying an activity circle, do not include text to communicate what the app is doing. The moving circle alone provides sufficient feedback about the delay, and does so in an understated way that minimizes the impact.</p>
-        <p>
-        <div style="margin-left:0;margin-top:1em;">
-          <img src="{@docRoot}design/media/progress_activity_do_dont.png">
-        </div>
-        </p>
-      </li>
-    </ol>
-
-  </div>
-</div>
-
-<h2 id="custom-indicators">Custom indicators</h2>
-<p>The standard progress bar and activity indicators work well for most situations and should be used whenever possible to provide a consistent experience across Android. However, some situations may call for something more custom.</p>
-
-<p>Here's an example:<br>
-In all of the Google Play apps (Music, Books, Movies, Magazines), we wanted the current download state of each item to be visible at all times at the top-level screen. These states are:
-  <ul>
-    <li>Not downloaded</li>
-    <li>Temporarily downloaded (automatically cached by the app)</li>
-    <li>Permanently downloaded on the device at the user's request</li>
-  </ul>
-</p>
-<p>We also needed to indicate progress from one download state to another, because downloading is not instantaneous.</p>
-<p>This presented a challenge, because the Google Play apps use a variety of different layouts, and some of them are highly space-constrained. We didn't want this information to clutter the top-level screens, or compete too much with the cover art.</p>
-<p>So we designed a custom indicator that could show all of the information in a tiny footprint, with the flexibility to appear on top of content if necessary.</p>
-
-<img src="{@docRoot}design/media/progress_activity_custom.png">
-
-<p>The color indicates whether it's downloaded (blue) or not (gray). The appearance of the pin indicates whether the download is permanent (white, upright) or temporary (gray, diagonal). And when state is in the process of changing, progress is indicated by a moving pie chart.</p>
-
-<div class="layout-content-row">
-  <div class="layout-content-col span-9">
-    <img src="{@docRoot}design/media/progress_activity_custom_app.png">
-  </div>
-  <div class="layout-content-col span-4">
-    <div class="figure-caption">
-      Across Google Play apps with different layouts, the same custom indicator appears with each item. It communicates download state as well as progress, in a compact package that can be incorporated into any screen design.
-    </div>
-  </div>
-</div>
-
-<p>If you find that the standard indicators aren't meeting your needs (due to space constraints, state complexities), by all means design your own. Make it feel like part of the Android family by injecting some of the visual characteristics of the standard indicators. In this example, we carried over the circular shape, the same shade of blue, and the flat and simple style.</p>
diff --git a/docs/html/design/building-blocks/scrolling.jd b/docs/html/design/building-blocks/scrolling.jd
deleted file mode 100644
index 04b1e4a..0000000
--- a/docs/html/design/building-blocks/scrolling.jd
+++ /dev/null
@@ -1,39 +0,0 @@
-page.title=Scrolling
-page.tags=scrollview,listview
-@jd:body
-
-
-<p>Scrolling allows the user to navigate to content in the overflow using a swipe gesture. The
-scrolling speed is proportional to the speed of the gesture.</p>
-<h2 id="indicator">Scroll Indicator</h2>
-
-<p>Appears during scrolling to indicate what portion of the content is currently in view.</p>
-
-<div class="framed-nexus5-land-span-13">
-  <video class="play-on-hover" autoplay>
-    <source src="{@docRoot}design/media/scroll_indicator.mp4" type="video/mp4">
-    <source src="{@docRoot}design/media/scroll_indicator.webm" type="video/webm">
-    <source src="{@docRoot}design/media/scroll_indicator.ogv" type="video/ogg">
-  </video>
-</div>
-<div class="figure-caption">
-  <div class="video-instructions">&nbsp;</div>
-</div>
-
-<h2 id="index-scrolling">Index Scrolling</h2>
-
-<p>In addition to traditional scrolling, a long alphabetical list can also offer index scrolling: a way
-to quickly navigate to the items that begin with a particular letter. With index scrolling, a scroll
-indicator appears even when the user isn't scrolling. Touching or dragging it causes the current
-letter to pop up in a prominent way.</p>
-
-<div class="framed-nexus5-land-span-13">
-  <video class="play-on-hover" autoplay>
-    <source src="{@docRoot}design/media/scroll_index.mp4" type="video/mp4">
-    <source src="{@docRoot}design/media/scroll_index.webm" type="video/webm">
-    <source src="{@docRoot}design/media/scroll_index.ogv" type="video/ogg">
-  </video>
-</div>
-<div class="figure-caption">
-  <div class="video-instructions">&nbsp;</div>
-</div>
diff --git a/docs/html/design/building-blocks/seek-bars.jd b/docs/html/design/building-blocks/seek-bars.jd
deleted file mode 100644
index 5c42102..0000000
--- a/docs/html/design/building-blocks/seek-bars.jd
+++ /dev/null
@@ -1,45 +0,0 @@
-page.title=Seek Bars and Sliders
-page.tags=seekbar,progressbar
-@jd:body
-
-<a class="notice-designers-material"
-  href="http://www.google.com/design/spec/components/sliders.html">
-  <div>
-    <h3>Material Design</h3>
-    <p>Sliders<p>
-  </div>
-</a>
-
-<p>Interactive sliders make it possible to select a value from a continuous or discrete range of values
-by moving the slider thumb. The smallest value is to the left, the largest to the right. The
-interactive nature of the slider makes it a great choice for settings that reflect intensity levels,
-such as volume, brightness, or color saturation.</p>
-
-<div class="layout-content-row">
-  <div class="layout-content-col span-9">
-
-    <img src="{@docRoot}design/media/seekbar_example.png">
-
-  </div>
-  <div class="layout-content-col span-4">
-
-<div class="vspace size-2">&nbsp;</div>
-
-<h4>Example</h4>
-<p>Interactive slider to set the ringer volume. The value can either be set through the hardware volume controls or interactively via a gesture.</p>
-
-  </div>
-</div>
-
-
-<div class="layout-content-row">
-  <div class="layout-content-col span-9">
-
-    <img src="{@docRoot}design/media/seekbar_style.png">
-    <div class="figure-caption">
-      Seek bars in Holo Light &amp; Dark
-    </div>
-
-  </div>
-  <div class="layout-content-col span-4">&nbsp;</div>
-</div>
diff --git a/docs/html/design/building-blocks/spinners.jd b/docs/html/design/building-blocks/spinners.jd
deleted file mode 100644
index 3a74ccf..0000000
--- a/docs/html/design/building-blocks/spinners.jd
+++ /dev/null
@@ -1,54 +0,0 @@
-page.title=Spinners
-page.tags=spinner,dropdown
-@jd:body
-
-<a class="notice-designers-material"
-  href="http://www.google.com/design/spec/components/menus.html">
-  <div>
-    <h3>Material Design</h3>
-    <p>Menus<p>
-  </div>
-</a>
-
-<a class="notice-developers" href="{@docRoot}guide/topics/ui/controls/spinner.html">
-  <div>
-    <h3>Developer Docs</h3>
-    <p>Spinners</p>
-  </div>
-</a>
-
-<p itemprop="description">Spinners provide a quick way to select one value from a set. In the default state, a spinner shows
-its currently selected value. Touching the spinner displays a dropdown menu with all other available
-values, from which the user can select a new one.</p>
-
-
-<div class="layout-content-row">
-  <div class="layout-content-col span-6">
-
-    <img src="{@docRoot}design/media/spinners_form.png">
-
-<h4>Spinners in forms</h4>
-<p>Spinners are useful for data picking in forms. They are compact and integrate nicely with other
-components. Use spinners in forms for both simple data input and in combination with other input
-fields. For example, a text field might let you edit an email address for a contact, while its
-associated spinner allows you to select whether it's a Home or Work address.</p>
-
-  </div>
-  <div class="layout-content-col span-7">
-
-    <img src="{@docRoot}design/media/spinners_actionbar.png">
-
-<h4>Spinners in action bars</h4>
-<p>Use spinners in action bars to switch views. For example, Gmail uses a spinner to permit switching
-between accounts or commonly used labels. Spinners are useful when changing the view is important to
-your app, but not necessarily a frequent occurrence. In cases where view switching is frequent, use
-tabs.</p>
-
-  </div>
-</div>
-
-<img src="{@docRoot}design/media/spinners_hololightanddark.png">
-<div class="figure-caption">
-  Spinners in the Holo Dark and Holo Light themes, in various states.
-</div>
-
diff --git a/docs/html/design/building-blocks/switches.jd b/docs/html/design/building-blocks/switches.jd
deleted file mode 100644
index 9dd09ca..0000000
--- a/docs/html/design/building-blocks/switches.jd
+++ /dev/null
@@ -1,64 +0,0 @@
-page.title=Switches
-page.tags=switch,checkbox,radiobutton,button
-@jd:body
-
-<a class="notice-designers-material"
-  href="http://www.google.com/design/spec/components/selection-controls.html">
-  <div>
-    <h3>Material Design</h3>
-    <p>Selection Controls<p>
-  </div>
-</a>
-
-<p>Switches allow the user to select options. There are three kinds of switches: checkboxes, radio
-buttons, and on/off switches.</p>
-
-
-
-<h2 id="checkboxes">Checkboxes</h2>
-
-<a class="notice-developers" href="{@docRoot}guide/topics/ui/controls/checkbox.html">
-  <div>
-    <h3>Developer Docs</h3>
-    <p>Checkboxes</p>
-  </div>
-</a>
-
-<p itemprop="description">Checkboxes allow the user to select multiple options from a set. Avoid using a single checkbox to
-turn an option off or on. Instead, use an on/off switch.</p>
-
-  <img src="{@docRoot}design/media/switches_checkboxes.png">
-
-
-
-<h2 id="radio-buttons">Radio Buttons</h2>
-
-<a class="notice-developers" href="{@docRoot}guide/topics/ui/controls/radiobutton.html">
-  <div>
-    <h3>Developer Docs</h3>
-    <p>Radio Buttons</p>
-  </div>
-</a>
-
-<p>Radio buttons allow the user to select one option from a set. Use radio buttons for exclusive
-selection if you think that the user needs to see all available options side-by-side. Otherwise,
-consider a spinner, which uses less space.</p>
-
-  <img src="{@docRoot}design/media/switches_radios.png">
-
-
-
-<h2 id="switches">On/off Switches</h2>
-
-<a class="notice-developers" href="{@docRoot}guide/topics/ui/controls/togglebutton.html">
-  <div>
-    <h3>Developer Docs</h3>
-    <p>Toggle Buttons</p>
-  </div>
-</a>
-
-<p>On/off switches toggle the state of a single settings option.</p>
-
-  <img src="{@docRoot}design/media/switches_switches.png">
-
-
diff --git a/docs/html/design/building-blocks/tabs.jd b/docs/html/design/building-blocks/tabs.jd
deleted file mode 100644
index 078de92..0000000
--- a/docs/html/design/building-blocks/tabs.jd
+++ /dev/null
@@ -1,65 +0,0 @@
-page.title=Tabs
-page.tags=tabs,actionbar,navigation,viewpager
-@jd:body
-
-<img src="{@docRoot}design/media/tabs_overview.png">
-
-<a class="notice-designers-material"
-  href="http://www.google.com/design/spec/components/tabs.html">
-  <div>
-    <h3>Material Design</h3>
-    <p>Tabs<p>
-  </div>
-</a>
-
-<a class="notice-developers" href="{@docRoot}training/implementing-navigation/lateral.html">
-  <div>
-    <h3>Developer Docs</h3>
-    <p>Creating Swipe Views<br>with Tabs</p>
-  </div>
-</a>
-
-<p itemprop="description">Tabs in the action bar make it easy to explore and switch between different views or functional
-aspects of your app, or to browse categorized data sets.</p>
-
-<p>For details on using gestures to move between tabs, see the <a href="{@docRoot}design/patterns/swipe-views.html">Swipe Views</a> pattern.</p>
-
-<h2 id="scrollable">Scrollable Tabs</h2>
-
-
-<div class="layout-content-row">
-  <div class="layout-content-col span-6">
-
-<p>Scrolling tab controls can contain a larger number of items than a standard tab control. To navigate
-to the next/previous view, swipe left or right.</p>
-
-  </div>
-  <div class="layout-content-col span-7">
-
-    <video width="400" class="with-shadow play-on-hover" autoplay>
-      <source src="{@docRoot}design/media/tabs_scrolly.mp4" type="video/mp4">
-      <source src="{@docRoot}design/media/tabs_scrolly.webm" type="video/webm">
-      <source src="{@docRoot}design/media/tabs_scrolly.ogv" type="video/ogg">
-    </video>
-    <div class="figure-caption">
-      Scrolling tabs in the Play Store app.
-      <div class="video-instructions-image">&nbsp;</div>
-    </div>
-
-  </div>
-</div>
-
-
-<h2 id="fixed">Fixed Tabs</h2>
-<p>Fixed tabs display all items concurrently. To navigate to a different view, touch the tab, or swipe left or right.</p>
-<p>Fixed tabs are displayed with equal width, based on the width of the widest tab label. If there is insufficient room to display all tabs, the tab labels themselves will be scrollable. For this reason, fixed tabs are best suited for displaying 3 or fewer tabs.</p>
-
-<img src="{@docRoot}design/media/tabs_standard.png">
-<div class="figure-caption">
-  Tabs in Holo Dark &amp; Light.
-</div>
-
-<img src="{@docRoot}design/media/tabs_youtube.png">
-<div class="figure-caption">
-  Tabs in the Google Play Movies app.
-</div>
diff --git a/docs/html/design/building-blocks/text-fields.jd b/docs/html/design/building-blocks/text-fields.jd
deleted file mode 100644
index 19c22f9..0000000
--- a/docs/html/design/building-blocks/text-fields.jd
+++ /dev/null
@@ -1,88 +0,0 @@
-page.title=Text Fields
-page.tags=text,edittext,input
-@jd:body
-
-
-<a class="notice-designers-material"
-  href="http://www.google.com/design/spec/components/text-fields.html">
-  <div>
-    <h3>Material Design</h3>
-    <p>Text Fields<p>
-  </div>
-</a>
-
-<a class="notice-developers" href="{@docRoot}guide/topics/ui/controls/text.html">
-  <div>
-    <h3>Developer Docs</h3>
-    <p>Text Fields</p>
-  </div>
-</a>
-
-<p itemprop="description">Text fields allow the user to type text into your app. They can be either single line or multi-line.
-Touching a text field places the cursor and automatically displays the keyboard. In addition to
-typing, text fields allow for a variety of other activities, such as text selection (cut, copy,
-paste) and data lookup via auto-completion.</p>
-
-
-<div class="layout-content-row">
-  <div class="layout-content-col span-12">
-
-    <img src="{@docRoot}design/media/text_input_singlevsmultiline.png">
-
-  </div>
-</div>
-
-<h4>Single line and multi line</h4>
-<p>Single-line fields automatically scroll their content to the left as the text input cursor reaches
-the right edge of the input field. Multi-line text fields automatically break to a new line for
-overflow text and scroll vertically when the cursor reaches the lower edge.</p>
-
-<img src="{@docRoot}design/media/text_input_typesandtypedown.png">
-
-<div class="layout-content-row">
-  <div class="layout-content-col span-6">
-
-<h4>Text field types</h4>
-<p>Text fields can have different types, such as number, message, or email address. The type determines
-what kind of characters are allowed inside the field, and may prompt the virtual keyboard to
-optimize its layout for frequently used characters.</p>
-
-  </div>
-  <div class="layout-content-col span-6">
-
-<h4>Auto-complete text fields</h4>
-<p>Use auto-complete text fields to present real-time completions or search results in popups, so users
-can enter information more accurately and efficiently.</p>
-
-  </div>
-</div>
-
-<h2 id="text-selection">Text Selection</h2>
-
-<p>Users can select any word in a text field with a long press. This action triggers a text selection
-mode that facilitates extending the selection or choosing an action to perform on the selected text.
-Selection mode includes:</p>
-
-<div class="layout-content-row">
-  <div class="layout-content-col span-9">
-
-    <img src="{@docRoot}design/media/text_input_textselection.png">
-
-  </div>
-  <div class="layout-content-col span-4 with-callouts">
-
-<ol>
-<li>
-<h4>Contextual action bar</h4>
-<p>A contextual action bar (CAB) displays the actions available to perform on the selection:
- typically cut, copy, and paste, but apps can insert additional commands as needed.</p>
-</li>
-<li>
-<h4>Selection handles</h4>
-<p>Selection handles can be dragged to select more or less text while remaining in selection mode.</p>
-</li>
-</ol>
-
-  </div>
-</div>
-
diff --git a/docs/html/design/design_toc.cs b/docs/html/design/design_toc.cs
index 63f5cad..85569ef 100644
--- a/docs/html/design/design_toc.cs
+++ b/docs/html/design/design_toc.cs
@@ -1,15 +1,15 @@
 <ul id="nav">
 
   <li class="nav-section">
-    <div class="nav-section-header"><a href="<?cs var:toroot ?>design/index.html">Get Started</a></div>
+    <div class="nav-section-header"><a href="<?cs var:toroot ?>design/get-started/creative-vision.html">Creative Vision</a></div>
     <ul>
-      <li><a href="<?cs var:toroot ?>design/get-started/creative-vision.html">Creative Vision</a></li>
       <li><a href="<?cs var:toroot ?>design/get-started/principles.html">Design Principles</a></li>
+      <li><a href="<?cs var:toroot ?>design/patterns/new.html">New in Android</a></li>
     </ul>
   </li>
 
   <li class="nav-section">
-    <div class="nav-section-header empty"><a href="<?cs var:toroot ?>design/material/index.html">Material Design</a></div>
+    <div class="nav-section-header empty"><a href="<?cs var:toroot ?>design/material/index.html">Material for Android</a></div>
   </li>
 
   <li class="nav-section">
@@ -43,59 +43,20 @@
   </li>
 
   <li class="nav-section">
-    <div class="nav-section-header"><a href="<?cs var:toroot ?>design/style/index.html">Style</a></div>
+    <div class="nav-section-header"><a href="<?cs var:toroot ?>design/style/index.html">Pure Android</a></div>
     <ul>
       <li><a href="<?cs var:toroot ?>design/style/devices-displays.html">Devices and Displays</a></li>
-      <li><a href="<?cs var:toroot ?>design/style/themes.html">Themes</a></li>
-      <li><a href="<?cs var:toroot ?>design/style/touch-feedback.html">Touch Feedback</a></li>
-      <li><a href="<?cs var:toroot ?>design/style/metrics-grids.html">Metrics and Grids</a></li>
-      <li><a href="<?cs var:toroot ?>design/style/typography.html">Typography</a></li>
-      <li><a href="<?cs var:toroot ?>design/style/color.html">Color</a></li>
-      <li><a href="<?cs var:toroot ?>design/style/iconography.html">Iconography</a></li>
-      <li><a href="<?cs var:toroot ?>design/style/branding.html">Your Branding</a></li>
-      <li><a href="<?cs var:toroot ?>design/style/writing.html" zh-cn-lang="写作风格">Writing Style</a></li>
-    </ul>
-  </li>
-
-  <li class="nav-section">
-    <div class="nav-section-header"><a href="<?cs var:toroot ?>design/patterns/index.html">Patterns</a></div>
-    <ul>
-      <li><a href="<?cs var:toroot ?>design/patterns/new.html">New in Android</a></li>
-      <li><a href="<?cs var:toroot ?>design/patterns/gestures.html">Gestures</a></li>
       <li><a href="<?cs var:toroot ?>design/patterns/app-structure.html">App Structure</a></li>
       <li><a href="<?cs var:toroot ?>design/patterns/navigation.html">Navigation</a></li>
-      <li><a href="<?cs var:toroot ?>design/patterns/actionbar.html">Action Bar</a></li>
-      <li><a href="<?cs var:toroot ?>design/patterns/navigation-drawer.html">Navigation Drawer</a></li>
-      <li><a href="<?cs var:toroot ?>design/patterns/multi-pane-layouts.html">Multi-pane Layouts</a></li>
-      <li><a href="<?cs var:toroot ?>design/patterns/swipe-views.html">Swipe Views</a></li>
-      <li><a href="<?cs var:toroot ?>design/patterns/fullscreen.html">Full Screen</a></li>
-      <li><a href="<?cs var:toroot ?>design/patterns/selection.html">Selection</a></li>
-      <li><a href="<?cs var:toroot ?>design/patterns/confirming-acknowledging.html">Confirming &amp; Acknowledging</a></li>
       <li><a href="<?cs var:toroot ?>design/patterns/notifications.html">Notifications</a></li>
       <li><a href="<?cs var:toroot ?>design/patterns/widgets.html">Widgets</a></li>
-      <li><a href="<?cs var:toroot ?>design/patterns/settings.html">Settings</a></li>
-      <li><a href="<?cs var:toroot ?>design/patterns/help.html">Help</a></li>
+      <li><a href="<?cs var:toroot ?>design/patterns/swipe-views.html">Swipe Views</a></li>
+      <li><a href="<?cs var:toroot ?>design/patterns/fullscreen.html">Full Screen</a></li>
+      <li><a href="<?cs var:toroot ?>design/patterns/confirming-acknowledging.html">Confirming &amp; Acknowledging</a></li>
+      <li><a href="<?cs var:toroot ?>design/patterns/pure-android.html">Pure Android</a></li>
       <li><a href="<?cs var:toroot ?>design/patterns/compatibility.html">Compatibility</a></li>
       <li><a href="<?cs var:toroot ?>design/patterns/accessibility.html">Accessibility</a></li>
-      <li><a href="<?cs var:toroot ?>design/patterns/pure-android.html">Pure Android</a></li>
-    </ul>
-  </li>
-
-  <li class="nav-section">
-    <div class="nav-section-header"><a href="<?cs var:toroot ?>design/building-blocks/index.html">Building Blocks</a></div>
-    <ul>
-      <li><a href="<?cs var:toroot ?>design/building-blocks/tabs.html">Tabs</a></li>
-      <li><a href="<?cs var:toroot ?>design/building-blocks/lists.html">Lists</a></li>
-      <li><a href="<?cs var:toroot ?>design/building-blocks/grid-lists.html">Grid Lists</a></li>
-      <li><a href="<?cs var:toroot ?>design/building-blocks/scrolling.html">Scrolling</a></li>
-      <li><a href="<?cs var:toroot ?>design/building-blocks/spinners.html">Spinners</a></li>
-      <li><a href="<?cs var:toroot ?>design/building-blocks/buttons.html">Buttons</a></li>
-      <li><a href="<?cs var:toroot ?>design/building-blocks/text-fields.html">Text Fields</a></li>
-      <li><a href="<?cs var:toroot ?>design/building-blocks/seek-bars.html">Seek Bars</a></li>
-      <li><a href="<?cs var:toroot ?>design/building-blocks/progress.html">Progress &amp; Activity</a></li>
-      <li><a href="<?cs var:toroot ?>design/building-blocks/switches.html">Switches</a></li>
-      <li><a href="<?cs var:toroot ?>design/building-blocks/dialogs.html">Dialogs</a></li>
-      <li><a href="<?cs var:toroot ?>design/building-blocks/pickers.html">Pickers</a></li>
+      <li><a href="<?cs var:toroot ?>design/patterns/help.html">Help</a></li>
     </ul>
   </li>
 
@@ -103,8 +64,8 @@
     <div class="nav-section-header empty"><a href="<?cs var:toroot ?>design/downloads/index.html">Downloads</a></div>
   </li>
 
-  <li class="nav-section">
+<!-- <li class="nav-section">
     <div class="nav-section-header empty"><a href="<?cs var:toroot ?>design/videos/index.html">Videos</a></div>
-  </li>
+  </li> -->
 
 </ul>
diff --git a/docs/html/design/devices.jd b/docs/html/design/devices.jd
index c67e585..3d23d07 100644
--- a/docs/html/design/devices.jd
+++ b/docs/html/design/devices.jd
@@ -1,8 +1,9 @@
-page.title=Devices
+page.title=Android devices
 page.viewport_width=970
 section.landing=true
 header.hide=1
 footer.hide=1
+page.image=images/cards/android-devices_2x.jpg
 @jd:body
 
 <style>
diff --git a/docs/html/design/downloads/index.jd b/docs/html/design/downloads/index.jd
index 4111bca..089a4af 100644
--- a/docs/html/design/downloads/index.jd
+++ b/docs/html/design/downloads/index.jd
@@ -3,121 +3,30 @@
 @jd:body
 
 
-<p>You may use these materials without restriction to facilitate your app design
-and implementation.</p>
+<p>For icons, sticker sheets, and other downloadable resources, visit the
+<a href="http://www.google.com/design">Design site</a> or use the links below. </p>
 
-
-<h2 id="stencils">Phone &amp; Tablet Stencils</h2>
-
-<div class="layout-content-row">
-  <div class="layout-content-col span-5">
-
-
-<p>Drag and drop your way to beautifully designed Android apps. The stencils feature the
-rich typography, colors, interactive controls, and icons found throughout Android, along with
-phone and tablet outlines to frame your creations. Source files for icons and controls are also
-available.</p>
-
-  </div>
-  <div class="layout-content-col span-4">
-
-    <img src="{@docRoot}design/media/downloads_stencils.png">
-
-  </div>
-
-  <div class="layout-content-col span-4">
-    <a class="notice-designers-material"
-      style="width:218px;"
-      href="http://www.google.com/design/spec/resources/layout-templates.html">
-      <div>
-        <h3>Material Design</h3>
-        <p>Layout Templates<p>
-      </div>
-    </a>
-  </div>
-
-  <div class="layout-content-col span-4">
-    <a class="notice-designers-material"
-      style="width:218px;"
-      href="http://www.google.com/design/spec/resources/sticker-sheets-icons.html">
-      <div>
-        <h3>Material Design</h3>
-        <p>Sticker Sheets<p>
-      </div>
-    </a>
-  </div>
-
-  <div class="layout-content-col span-4">
-<p>
-  <a class="download-button"  onClick="ga('send', 'event', 'Design', 'Download', 'Photoshop Sources');"
-    href="{@docRoot}downloads/design/Android_Design_Stencils_Sources_20131106.zip">Adobe&reg; Photoshop&reg; Stencils and Sources</a>
-</p>
-
-  </div>
+  <div class="resource-widget resource-flow-layout col-16"
+       data-query="collection:design/landing/resources"
+       data-cardSizes="6x2"
+       data-maxResults="6"></div>
 </div>
 
 
-
-
-
-
-<h2 id="action-bar-icon-pack">Action Bar Icon Pack</h2>
-
-<div class="layout-content-row">
-  <div class="layout-content-col span-5">
-
-<p>Action bar icons are graphic buttons that represent the most important actions people can take
-within your app. <a href="{@docRoot}design/style/iconography.html">More on Action Bar Iconography</a></p>
-<p>The download package includes icons that are scaled for various screen densities and suitable for
-use with the Holo Light and Holo Dark themes. The package also includes unstyled icons that you can
-modify to match your theme, plus source files.</p>
-
-  </div>
-  <div class="layout-content-col span-4">
-
-    <img src="{@docRoot}design/media/iconography_actionbar_style.png">
-
-  </div>
-
-  <div class="layout-content-col span-4">
-    <a class="notice-designers-material"
-      style="width:218px;"
-      href="http://www.google.com/design/spec/resources/sticker-sheets-icons.html">
-      <div>
-        <h3>Material Design</h3>
-        <p>Sticker Sheets<p>
-      </div>
-    </a>
-  </div>
-
-  <div class="layout-content-col span-4">
-
-<p>
-  <a class="download-button"  onClick="ga('send', 'event', 'Design', 'Download', 'Action Bar Icons');"
-    href="{@docRoot}downloads/design/Android_Design_Icons_20131106.zip">Action Bar Icon Pack</a>
-</p>
-
-  </div>
-</div>
-
-
-
-
-
 <h2 id="Wear">Android Wear Materials</h2>
 
-<div class="layout-content-row">
-  <div class="layout-content-col span-5">
+<div class="cols">
+  <div class="col-5">
   <h4>UI toolkit</h4>
 <p>The toolkit contains detailed specs and measurements of all of the primary Android Wear UI components. Available in PDF and Illustrator formats.</p>
 
   </div>
-  <div class="layout-content-col span-4">
+  <div class="col-4">
 
     <img src="{@docRoot}design/media/downloads_wear_toolkit.png" width="220">
 
   </div>
-  <div class="layout-content-col span-4">
+  <div class="col-4">
   <a class="download-button"  onClick="ga('send', 'event', 'Design', 'Download', 'Wear Toolkit AI');"
     href="{@docRoot}downloads/design/Android_Wear_Toolkit_20140722.ai">Adobe&reg; Illustrator&reg; Toolkit</a>
 
@@ -127,18 +36,18 @@
 </div>
 
 
-<div class="layout-content-row">
-  <div class="layout-content-col span-5">
+<div class="cols">
+  <div class="col-5">
   <h4>Sample user flow patterns</h4>
 <p>Examples of how to chain together simple Android Wear UI components into common user flow patterns, from simple notifications to complex interactions involving full screen activities.
 </p>
   </div>
-  <div class="layout-content-col span-4">
+  <div class="col-4">
 
     <img src="{@docRoot}design/media/downloads_wear_flows.png" width="220">
 
   </div>
-  <div class="layout-content-col span-4">
+  <div class="col-4">
   <a class="download-button"  onClick="ga('send', 'event', 'Design', 'Download', 'Wear App Patterns AI');"
     href="{@docRoot}downloads/design/Android_Wear_Patterns_20140722.ai">Adobe&reg; Illustrator&reg; App Patterns</a>
   <a class="download-button"  onClick="ga('send', 'event', 'Design', 'Download', 'Wear App Patterns PDF');"
@@ -147,182 +56,100 @@
 </div>
 
 
-<div class="layout-content-row">
-  <div class="layout-content-col span-5">
+<div class="cols">
+  <div class="col-5">
   <h4>Sample app design mocks</h4>
 <p>Stream cards and UI elements for some example apps in fully editable PSD format.
 </p>
 
   </div>
-  <div class="layout-content-col span-4">
+  <div class="col-4">
 
     <img src="{@docRoot}design/media/downloads_wear_psds.png" width="220">
 
   </div>
-  <div class="layout-content-col span-4">
+  <div class="col-4">
   <a class="download-button"  onClick="ga('send', 'event', 'Design', 'Download', 'Wear Sample PSD Mocks');"
     href="{@docRoot}downloads/design/Android_Wear_Sample_Assets.zip">Adobe&reg; Photoshop&reg; mocks</a>
   </div>
 </div>
 
 
-<div class="layout-content-row">
-  <div class="layout-content-col span-5">
+<div class="cols">
+  <div class="col-5">
   <h4>Watch faces UI toolkit</h4>
 <p>Detailed specifications and measurements for the the background canvas, notification cards, and
 system indicators.
 </p>
 
   </div>
-  <div class="layout-content-col span-4">
+  <div class="col-4">
 
     <img src="{@docRoot}design/media/downloads_wear_DesignSpec_Icon.png" width="220">
 
   </div>
-  <div class="layout-content-col span-4">
+  <div class="col-4">
   <a class="download-button"  onClick="ga('send', 'event', 'Design', 'Download', 'Wear Watch Face Specifications');"
     href="{@docRoot}downloads/design/AndroidWear_DesignSpec_11.13.pdf">PDF Toolkit</a>
   </div>
 </div>
 
 
-<div class="layout-content-row">
-  <div class="layout-content-col span-5">
+<div class="cols">
+  <div class="col-5">
   <h4>Slide watch face</h4>
 <p>Example of a watch face design in AI format.
 </p>
 
   </div>
-  <div class="layout-content-col span-4">
+  <div class="col-4">
 
     <img src="{@docRoot}design/media/downloads_wear_Slide_Ai_Icon.png" width="150"
          style="width:150px;margin:0 auto;display:block">
 
   </div>
-  <div class="layout-content-col span-4">
+  <div class="col-4">
   <a class="download-button"  onClick="ga('send', 'event', 'Design', 'Download', 'Wear Watch Face Example');"
     href="{@docRoot}downloads/design/Slide.ai">Adobe&reg; Illustrator&reg; Design</a>
   </div>
 </div>
 
 
-<div class="layout-content-row">
-  <div class="layout-content-col span-5">
+<div class="cols">
+  <div class="col-5">
   <h4>Slide watch face specifications</h4>
 <p>Design specifications for the Slide watch face in PSD format.
 </p>
 
   </div>
-  <div class="layout-content-col span-4">
+  <div class="col-4">
 
     <img src="{@docRoot}design/media/downloads_wear_Slide_Psd_Icon.png" width="150"
          style="width:150px;margin:0 auto;display:block">
 
   </div>
-  <div class="layout-content-col span-4">
+  <div class="col-4">
   <a class="download-button"  onClick="ga('send', 'event', 'Design', 'Download', 'Wear Watch Face Example Specifications');"
     href="{@docRoot}downloads/design/Slide.psd">Adobe&reg; Photoshop&reg; Specifications</a>
   </div>
 </div>
 
 
-<div class="layout-content-row">
-  <div class="layout-content-col span-5">
+<div class="cols">
+  <div class="col-5">
   <h4>Watch face icon example</h4>
 <p>Template for creating watch face icons for the carousel on Android Wear devices.
 </p>
 
   </div>
-  <div class="layout-content-col span-4">
+  <div class="col-4">
 
     <img src="{@docRoot}design/media/downloads_wear_Slide_IconExample.png" width="150"
          style="width:150px;margin:0 auto;display:block">
 
   </div>
-  <div class="layout-content-col span-4">
+  <div class="col-4">
   <a class="download-button"  onClick="ga('send', 'event', 'Design', 'Download', 'Wear Watch Face Example Specifications');"
     href="{@docRoot}downloads/design/Slide_IconExample.psd">Adobe&reg; Photoshop&reg; Icon</a>
   </div>
-</div>
-
-
-
-
-<h2 id="style">Style</h2>
-
-<div class="layout-content-row">
-  <div class="layout-content-col span-5">
-
-<h4 id="roboto">Roboto</h4>
-<p>Ice Cream Sandwich introduced a new type family named Roboto, created specifically for the
-requirements of UI and high-resolution screens.</p>
-<p>For Android Wear, Roboto Condensed is the system font and the Regular and Light variants should be used by all Wear apps.</p>
-<p><a href="{@docRoot}design/style/typography.html">More on Roboto</a></p>
-<p><a href="http://www.google.com/fonts/specimen/Roboto" class="external-link">Roboto on Google Fonts</a></p>
-<p><a href="http://www.google.com/fonts/specimen/Roboto+Condensed" class="external-link">Roboto Condensed on Google Fonts</a></p>
-
-  </div>
-  <div class="layout-content-col span-4">
-
-    <img src="{@docRoot}design/media/downloads_roboto_specimen_preview.png">
-
-  </div>
-
-  <div class="layout-content-col span-4">
-    <a class="notice-designers-material"
-      style="width:218px;"
-      href="http://www.google.com/design/spec/resources/roboto-noto-fonts.html">
-      <div>
-        <h3>Material Design</h3>
-        <p>Roboto Font<p>
-      </div>
-    </a>
-  </div>
-
-  <div class="layout-content-col span-4">
-
-<p>
-  <a class="download-button"  onClick="ga('send', 'event', 'Design', 'Download', 'Roboto ZIP');"
-    href="{@docRoot}downloads/design/roboto-1.2.zip">Roboto</a>
-  <a class="download-button"  onClick="ga('send', 'event', 'Design', 'Download', 'Roboto Specemin Book');"
-    href="{@docRoot}downloads/design/Roboto_Specimen_Book_20131031.pdf">Specimen Book</a>
-</p>
-
-  </div>
-</div>
-
-<div class="layout-content-row">
-  <div class="layout-content-col span-5">
-
-<h4>Color</h4>
-<p>In Android's color palette, each color has a corresponding darker
-shade that can be used as a complement when needed.</p>
-<p><a href="{@docRoot}design/style/color.html">More on Color</a></p>
-
-  </div>
-  <div class="layout-content-col span-4">
-
-    <img src="{@docRoot}design/media/downloads_color_swatches.png">
-
-  </div>
-
-  <div class="layout-content-col span-4">
-    <a class="notice-designers-material"
-      style="width:218px;"
-      href="http://www.google.com/design/spec/resources/color-palettes.html">
-      <div>
-        <h3>Material Design</h3>
-        <p>Color Palettes<p>
-      </div>
-    </a>
-  </div>
-
-  <div class="layout-content-col span-4">
-
-<p>
-  <a class="download-button"  onClick="ga('send', 'event', 'Design', 'Download', 'Color Swatches');"
-    href="{@docRoot}downloads/design/Android_Design_Color_Swatches_20120229.zip">Color Swatches</a>
-</p>
-
-  </div>
-</div>
+</div>
\ No newline at end of file
diff --git a/docs/html/design/get-started/creative-vision.jd b/docs/html/design/get-started/creative-vision.jd
index 9261c6e..974d5d0 100644
--- a/docs/html/design/get-started/creative-vision.jd
+++ b/docs/html/design/get-started/creative-vision.jd
@@ -1,4 +1,5 @@
 page.title=Creative Vision
+page.image=images/cards/design-creative-vision_2x.jpg
 @jd:body
 
 <img src="{@docRoot}design/media/creative_vision_main.png">
@@ -6,16 +7,15 @@
 <div class="vspace size-1">&nbsp;</div>
 
 <p itemprop="description">
-  Starting with Ice Cream Sandwich, we focused the design of
-  Android around these three overarching goals, which apply
-  to our core apps as well as the system at large.
-  As you work with Android, consider these goals.
+  Android design is shaped by three overarching goals for users that apply
+  to apps as well as the system at large. As you work with Android,
+  keep these goals in mind.
 </p>
 
 <div class="vspace size-1">&nbsp;</div>
 
-<div class="layout-content-row">
-  <div class="layout-content-col span-4">
+<div class="cols">
+  <div class="col-4">
 
 <h4>Enchant me</h4>
 <p>Beauty is more than skin deep. Android apps are sleek and aesthetically pleasing on multiple levels.
@@ -24,7 +24,7 @@
 simplicity and purpose to create a magical experience that is effortless and powerful.</p>
 
   </div>
-  <div class="layout-content-col span-5">
+  <div class="col-5">
 
 <h4>Simplify my life</h4>
 <p>Android apps make life easier and are easy to understand. When people use your app for the first
@@ -35,7 +35,7 @@
 irrelevant flash.</p>
 
   </div>
-  <div class="layout-content-col span-4">
+  <div class="col-4">
 
 <h4>Make me amazing</h4>
 <p>It's not enough to make an app that is easy to use. Android apps empower people to try new things
diff --git a/docs/html/design/get-started/principles.jd b/docs/html/design/get-started/principles.jd
index 73ec3a6..172a4e4 100644
--- a/docs/html/design/get-started/principles.jd
+++ b/docs/html/design/get-started/principles.jd
@@ -14,8 +14,8 @@
 
 <h2 id="enchant-me">Enchant Me</h2>
 
-<div class="layout-content-row">
-  <div class="layout-content-col span-7">
+<div class="cols">
+  <div class="col-7">
 
 <h4 id="delight-me">Delight me in surprising ways</h4>
 <p>A beautiful surface, a carefully-placed animation, or a well-timed sound effect is a joy to
@@ -23,7 +23,7 @@
 force is at hand.</p>
 
   </div>
-  <div class="layout-content-col span-6">
+  <div class="col-6">
 
     <img src="{@docRoot}design/media/principles_delight.png">
 
@@ -32,15 +32,15 @@
 
 <div class="vspace size-2">&nbsp;</div>
 
-<div class="layout-content-row">
-  <div class="layout-content-col span-7">
+<div class="cols">
+  <div class="col-7">
 
 <h4 id="real-objects-more-fun">Real objects are more fun than buttons and menus</h4>
 <p>Allow people to directly touch and manipulate objects in your app. It reduces the cognitive effort
 needed to perform a task while making it more emotionally satisfying.</p>
 
   </div>
-  <div class="layout-content-col span-6">
+  <div class="col-6">
 
     <img src="{@docRoot}design/media/principles_real_objects.png">
 
@@ -49,8 +49,8 @@
 
 <div class="vspace size-2">&nbsp;</div>
 
-<div class="layout-content-row">
-  <div class="layout-content-col span-7">
+<div class="cols">
+  <div class="col-7">
 
 <h4 id="make-it-mine">Let me make it mine</h4>
 <p>People love to add personal touches because it helps them feel at home and in control. Provide
@@ -58,7 +58,7 @@
 primary tasks.</p>
 
   </div>
-  <div class="layout-content-col span-6">
+  <div class="col-6">
 
     <img src="{@docRoot}design/media/principles_make_it_mine.png">
 
@@ -67,15 +67,15 @@
 
 <div class="vspace size-2">&nbsp;</div>
 
-<div class="layout-content-row">
-  <div class="layout-content-col span-7">
+<div class="cols">
+  <div class="col-7">
 
 <h4 id="get-to-know-me">Get to know me</h4>
 <p>Learn peoples' preferences over time. Rather than asking them to make the same choices over and
 over, place previous choices within easy reach.</p>
 
   </div>
-  <div class="layout-content-col span-6">
+  <div class="col-6">
 
     <img src="{@docRoot}design/media/principles_get_to_know_me.png">
 
@@ -84,14 +84,14 @@
 
 <h2 id="simplify-my-life">Simplify My Life</h2>
 
-<div class="layout-content-row">
-  <div class="layout-content-col span-7">
+<div class="cols">
+  <div class="col-7">
 
 <h4 id="keep-it-brief">Keep it brief</h4>
 <p>Use short phrases with simple words. People are likely to skip sentences if they're long.</p>
 
   </div>
-  <div class="layout-content-col span-6">
+  <div class="col-6">
 
     <img src="{@docRoot}design/media/principles_keep_it_brief.png">
 
@@ -100,15 +100,15 @@
 
 <div class="vspace size-2">&nbsp;</div>
 
-<div class="layout-content-row">
-  <div class="layout-content-col span-7">
+<div class="cols">
+  <div class="col-7">
 
 <h4 id="pictures-faster-than-words">Pictures are faster than words</h4>
 <p>Consider using pictures to explain ideas. They get people's attention and can be much more efficient
 than words.</p>
 
   </div>
-  <div class="layout-content-col span-6">
+  <div class="col-6">
 
     <img src="{@docRoot}design/media/principles_pictures.png">
 
@@ -117,15 +117,15 @@
 
 <div class="vspace size-2">&nbsp;</div>
 
-<div class="layout-content-row">
-  <div class="layout-content-col span-7">
+<div class="cols">
+  <div class="col-7">
 
 <h4 id="decide-for-me">Decide for me but let me have the final say</h4>
 <p>Take your best guess and act rather than asking first. Too many choices and decisions make people
 unhappy. Just in case you get it wrong, allow for 'undo'.</p>
 
   </div>
-  <div class="layout-content-col span-6">
+  <div class="col-6">
 
     <img src="{@docRoot}design/media/principles_decide_for_me.png">
 
@@ -134,15 +134,15 @@
 
 <div class="vspace size-2">&nbsp;</div>
 
-<div class="layout-content-row">
-  <div class="layout-content-col span-7">
+<div class="cols">
+  <div class="col-7">
 
 <h4 id="only-show-when-i-need-it">Only show what I need when I need it</h4>
 <p>People get overwhelmed when they see too much at once. Break tasks and information into small,
 digestible chunks. Hide options that aren't essential at the moment, and teach people as they go.</p>
 
   </div>
-  <div class="layout-content-col span-6">
+  <div class="col-6">
 
     <img src="{@docRoot}design/media/principles_information_when_need_it.png">
 
@@ -151,15 +151,15 @@
 
 <div class="vspace size-2">&nbsp;</div>
 
-<div class="layout-content-row">
-  <div class="layout-content-col span-7">
+<div class="cols">
+  <div class="col-7">
 
 <h4 id="always-know-where-i-am">I should always know where I am</h4>
 <p>Give people confidence that they know their way around. Make places in your app look distinct and
 use transitions to show relationships among screens. Provide feedback on tasks in progress.</p>
 
   </div>
-  <div class="layout-content-col span-6">
+  <div class="col-6">
 
     <img src="{@docRoot}design/media/principles_navigation.png">
 
@@ -168,8 +168,8 @@
 
 <div class="vspace size-2">&nbsp;</div>
 
-<div class="layout-content-row">
-  <div class="layout-content-col span-7">
+<div class="cols">
+  <div class="col-7">
 
 <h4 id="never-lose-my-stuff">Never lose my stuff</h4>
 <p>Save what people took time to create and let them access it from anywhere. Remember settings,
@@ -177,7 +177,7 @@
 easiest thing in the world.</p>
 
   </div>
-  <div class="layout-content-col span-6">
+  <div class="col-6">
 
     <img src="{@docRoot}design/media/principles_never_lose_stuff.png">
 
@@ -186,15 +186,15 @@
 
 <div class="vspace size-2">&nbsp;</div>
 
-<div class="layout-content-row">
-  <div class="layout-content-col span-7">
+<div class="cols">
+  <div class="col-7">
 
 <h4 id="looks-same-should-act-same">If it looks the same, it should act the same</h4>
 <p>Help people discern functional differences by making them visually distinct rather than subtle.
 Avoid modes, which are places that look similar but act differently on the same input.</p>
 
   </div>
-  <div class="layout-content-col span-6">
+  <div class="col-6">
 
     <img src="{@docRoot}design/media/principles_looks_same.png">
 
@@ -203,15 +203,15 @@
 
 <div class="vspace size-2">&nbsp;</div>
 
-<div class="layout-content-row">
-  <div class="layout-content-col span-7">
+<div class="cols">
+  <div class="col-7">
 
 <h4 id="interrupt-only-if-important">Only interrupt me if it's important</h4>
 <p>Like a good personal assistant, shield people from unimportant minutiae. People want to stay
 focused, and unless it's critical and time-sensitive, an interruption can be taxing and frustrating.</p>
 
   </div>
-  <div class="layout-content-col span-6">
+  <div class="col-6">
 
     <img src="{@docRoot}design/media/principles_important_interruption.png">
 
@@ -220,8 +220,8 @@
 
 <h2 id="make-me-amazing">Make Me Amazing</h2>
 
-<div class="layout-content-row">
-  <div class="layout-content-col span-7">
+<div class="cols">
+  <div class="col-7">
 
 <h4 id="give-me-tricks">Give me tricks that work everywhere</h4>
 <p>People feel great when they figure things out for themselves. Make your app easier to learn by
@@ -229,7 +229,7 @@
 may be a good navigational shortcut.</p>
 
   </div>
-  <div class="layout-content-col span-6">
+  <div class="col-6">
 
     <img src="{@docRoot}design/media/principles_tricks.png">
 
@@ -238,8 +238,8 @@
 
 <div class="vspace size-2">&nbsp;</div>
 
-<div class="layout-content-row">
-  <div class="layout-content-col span-7">
+<div class="cols">
+  <div class="col-7">
 
 <h4 id="its-not-my-fault">It's not my fault</h4>
 <p>Be gentle in how you prompt people to make corrections. They want to feel smart when they use your
@@ -247,7 +247,7 @@
 If you can fix it behind the scenes, even better.</p>
 
   </div>
-  <div class="layout-content-col span-6">
+  <div class="col-6">
 
     <img src="{@docRoot}design/media/principles_error.png">
 
@@ -256,15 +256,15 @@
 
 <div class="vspace size-2">&nbsp;</div>
 
-<div class="layout-content-row">
-  <div class="layout-content-col span-7">
+<div class="cols">
+  <div class="col-7">
 
 <h4 id="sprinkle-encouragement">Sprinkle encouragement</h4>
 <p>Break complex tasks into smaller steps that can be easily accomplished. Give feedback on actions,
 even if it's just a subtle glow.</p>
 
   </div>
-  <div class="layout-content-col span-6">
+  <div class="col-6">
 
     <img src="{@docRoot}design/media/principles_sprinkle_encouragement.png">
 
@@ -273,8 +273,8 @@
 
 <div class="vspace size-2">&nbsp;</div>
 
-<div class="layout-content-row">
-  <div class="layout-content-col span-7">
+<div class="cols">
+  <div class="col-7">
 
 <h4 id="do-heavy-lifting-for-me">Do the heavy lifting for me</h4>
 <p>Make novices feel like experts by enabling them to do things they never thought they could. For
@@ -282,7 +282,7 @@
 only a few steps.</p>
 
   </div>
-  <div class="layout-content-col span-6">
+  <div class="col-6">
 
     <img src="{@docRoot}design/media/principles_heavy_lifting.png">
 
@@ -291,15 +291,15 @@
 
 <div class="vspace size-2">&nbsp;</div>
 
-<div class="layout-content-row">
-  <div class="layout-content-col span-7">
+<div class="cols">
+  <div class="col-7">
 
 <h4 id="make-important-things-fast">Make important things fast</h4>
 <p>Not all actions are equal. Decide what's most important in your app and make it easy to find and
 fast to use, like the shutter button in a camera, or the pause button in a music player.</p>
 
   </div>
-  <div class="layout-content-col span-6">
+  <div class="col-6">
 
     <img src="{@docRoot}design/media/principles_make_important_fast.png">
 
diff --git a/docs/html/design/handhelds/index.jd b/docs/html/design/handhelds/index.jd
index 882b070..81c2c19 100644
--- a/docs/html/design/handhelds/index.jd
+++ b/docs/html/design/handhelds/index.jd
@@ -20,8 +20,8 @@
 
 <div class="vspace size-1">&nbsp;</div>
 
-<div class="layout-content-row">
-  <div class="layout-content-col span-4">
+<div class="cols">
+  <div class="col-4">
 
     <img src="{@docRoot}design/media/ui_overview_home_screen.png">
 
@@ -34,7 +34,7 @@
 the Favorites Tray.</p>
 
   </div>
-  <div class="layout-content-col span-4">
+  <div class="col-4">
 
     <img src="{@docRoot}design/media/ui_overview_all_apps.png">
 
@@ -45,7 +45,7 @@
 any Home screen.</p>
 
   </div>
-  <div class="layout-content-col span-4">
+  <div class="col-4">
 
     <img src="{@docRoot}design/media/ui_overview_recents.png">
 
@@ -94,13 +94,13 @@
 interrupting the user. Open the notifications drawer by swiping down on the status bar. Touching a
 notification opens the associated app. <a href="{@docRoot}design/patterns/notifications.html">More on Notifications</a></p>
 
-<div class="layout-content-row">
-  <div class="layout-content-col span-4">
+<div class="cols">
+  <div class="col-4">
 
     <img src="{@docRoot}design/media/ui_overview_notifications.png">
 
   </div>
-  <div class="layout-content-col span-9">
+  <div class="col-9">
 
     <img src="{@docRoot}design/media/notifications_dismiss.png">
 
@@ -116,13 +116,13 @@
 <h2 id="app">Common App UI</h2>
 
 
-<div class="layout-content-row">
-  <div class="layout-content-col span-7">
+<div class="cols">
+  <div class="col-7">
 
     <img src="{@docRoot}design/media/app_structure_drawer.png">
 
   </div>
-  <div class="layout-content-col span-6 with-callouts">
+  <div class="col-6 with-callouts">
 
 <p>A typical Android app uses action bars, and many apps will include a navigation drawer.</p>
 <ol>
diff --git a/docs/html/design/index.jd b/docs/html/design/index.jd
index 47e8d26..1ffb0a3 100644
--- a/docs/html/design/index.jd
+++ b/docs/html/design/index.jd
@@ -1,3 +1,4 @@
+fullpage=true
 page.title=Design
 page.viewport_width=970
 section.landing=true
@@ -6,43 +7,71 @@
 footer.hide=1
 @jd:body
 
-<style>
-#landing-graphic-container {
-  position: relative;
-}
-
-#text-overlay {
-  position: absolute;
-  left: 0;
-  top: 42px;
-  width: 266px;
-
-}
-#hero-image {
-  padding-left:68px;
-}
-</style>
-
-<div id="landing-graphic-container">
-  <div id="text-overlay">
-    <span itemprop="description">Welcome to <strong>Android Design</strong>, your place for
-    learning how to design exceptional Android apps.</span>
-    <br><br>
-    Want to know what <strong>Android 5.0</strong> has for designers? See <a href="{@docRoot}design/patterns/new.html">New in Android</a>.<br><br>
-    <a href="/design/get-started/creative-vision.html" class="landing-page-link">Creative Vision</a>
+<section class="dac-expand dac-hero dac-light">
+  <div class="wrap">
+    <div class="cols dac-hero-content">
+      <div class="col-1of2 col-push-1of2 dac-hero-figure">
+        <img class="dac-hero-image" src="/design/media/hero-material-design.png">
+      </div>
+      <div class="col-1of2 col-pull-1of2">
+        <h1 class="dac-hero-title">Up and running with material design</h1>
+        <p class="dac-hero-description">
+        Android uses a new design metaphor inspired by paper and ink that provides a reassuring
+        sense of tactility. Visit the <a href="http://www.google.com/design/spec/material-design/introduction">material design</a> site for more resources. 
+        </p>
+        <a class="dac-hero-cta" href="https://www.google.com/design/spec/material-design/introduction.html">
+          <span class="dac-sprite dac-auto-chevron"></span>
+          Introducing material design
+        </a><br>
+        <a class="dac-hero-cta" href="https://www.google.com/design/spec/resources/color-palettes.html">
+          <span class="dac-sprite dac-auto-chevron"></span>
+          Downloads for designers
+        </a><br>
+        <a class="dac-hero-cta" href="https://google.com/design/articles/">
+          <span class="dac-sprite dac-auto-chevron"></span>
+          Articles
+        </a>
+      </div>
+    </div>
+    <div class="dac-section dac-small">
+      <div class="resource-widget resource-flow-layout col-16"
+           data-query="collection:design/landing/materialdesign"
+           data-cardSizes="6x2"
+           data-maxResults="6"></div>
+    </div>
   </div>
-  <a id="hero-image" href="/design/get-started/creative-vision.html">
-    <img src="{@docRoot}design/media/index_landing_page.png" width="760" height="600" alt=""
-         srcset="{@docRoot}design/media/index_landing_page_2x.png 2x"/>
+</section>
+<div class="wrap dac-offset-parent">
+  <a class="dac-fab dac-scroll-button" data-scroll-button href="#latest">
+    <i class="dac-sprite dac-arrow-down-gray"></i>
   </a>
-
-<div style="background: hsl(8, 70%, 54%); margin: 0; padding: 20px 20px 10px 20px;color: #fff; position: absolute;top: 255px;width: 179px;">
-<h2 style="color: #fff;margin:0 0 10px; font-size:18px" class="norule">Material Design</h2>
-<p>Android 5.0 introduces a design
-metaphor inspired by paper and ink that provides a reassuring sense of tactility.
-</p>
-<p><a class="white" href="{@docRoot}design/material/index.html">Learn more</a></p>
 </div>
+<section class="dac-section dac-gray dac-small dac-invert" id="latest"><div class="wrap">
+  <h2 class="norule">Latest</h2>
+  <div class="resource-widget resource-flow-layout col-16"
+       data-query="collection:design/landing/latest"
+       data-cardSizes="6x6"
+       data-maxResults="3"></div>
+</div></section>
 
-</div>
+<section class="dac-section dac-light"><div class="wrap">
+  <h1 class="dac-section-title">Pure Android</h1>
+  <div class="dac-section-subtitle">
+    Design around Android's capabilities and conventions to give users the best experience.
+  </div>
+  <div class="resource-widget resource-flow-layout col-16"
+       data-query="collection:design/landing/pureandroid"
+       data-cardSizes="6x6"
+       data-maxResults="6"></div>
+</div></section>
 
+<section class="dac-section dac-gray"><div class="wrap">
+  <h1 class="dac-section-title">Resources</h1>
+  <div class="dac-section-subtitle">
+    Essential downloads, stencils, and tools to help you create your design.
+  </div>
+  <div class="resource-widget resource-flow-layout col-16"
+       data-query="collection:design/landing/resources"
+       data-cardSizes="6x2"
+       data-maxResults="6"></div>
+</div></section>
diff --git a/docs/html/design/material/index.jd b/docs/html/design/material/index.jd
index 4d9a1a7..c5893a7 100644
--- a/docs/html/design/material/index.jd
+++ b/docs/html/design/material/index.jd
@@ -1,7 +1,7 @@
-page.title=Material Design
+page.title=Material Design for Android
 page.tags=Material,design
 page.type=design
-page.image=design/material/images/MaterialLight.png
+page.image=images/cards/design-material-for-android_2x.jpg
 
 @jd:body
 
diff --git a/docs/html/design/media/hero-material-design.png b/docs/html/design/media/hero-material-design.png
new file mode 100644
index 0000000..55c4420
--- /dev/null
+++ b/docs/html/design/media/hero-material-design.png
Binary files differ
diff --git a/docs/html/design/patterns/accessibility.jd b/docs/html/design/patterns/accessibility.jd
index b968237..b910294 100644
--- a/docs/html/design/patterns/accessibility.jd
+++ b/docs/html/design/patterns/accessibility.jd
@@ -48,11 +48,11 @@
 <h4>Label visual UI elements meaningfully</h4>
 <p>In your wireframes, <a href="{@docRoot}guide/topics/ui/accessibility/apps.html#label-ui">label functional UI components</a> that have no visible text. Those components might be buttons, icons, tabs with icons, and icons with state (like stars). Developers can use the <code><a href="{@docRoot}guide/topics/ui/accessibility/apps.html#label-ui">contentDescription</a></code> attribute to set the label.</p>
 
-<div class ="layout-content-row">
-    <div class="layout-content-col span-8">
+<div class ="cols">
+    <div class="col-8">
       <img src="{@docRoot}design/media/accessibility_contentdesc.png">
     </div>
-    <div class="layout-content-col span-5 with-callouts">
+    <div class="col-5 with-callouts">
       <ol>
         <li class="value-1">group</li>
         <li class="value-2">all contacts</li>
@@ -95,4 +95,4 @@
   <li>Provide alternatives to affordances that time out</li>
   <li>Use standard framework controls or enable TalkBack for custom controls</li>
   <li>Try it out yourself</li>
-</ul>
\ No newline at end of file
+</ul>
diff --git a/docs/html/design/patterns/actionbar.jd b/docs/html/design/patterns/actionbar.jd
index 5467722..ef02c53 100644
--- a/docs/html/design/patterns/actionbar.jd
+++ b/docs/html/design/patterns/actionbar.jd
@@ -34,8 +34,8 @@
 <p>The action bar is split into four different functional areas that apply to most apps.</p>
 <img src="{@docRoot}design/media/action_bar_basics.png">
 
-<div class="layout-content-row">
-  <div class="layout-content-col span-7 with-callouts">
+<div class="cols">
+  <div class="col-7 with-callouts">
 
     <ol>
       <li class="value-1"><h4>App icon</h4>
@@ -57,7 +57,7 @@
     </ol>
 
   </div>
-  <div class="layout-content-col span-6 with-callouts">
+  <div class="col-6 with-callouts">
 
     <ol>
       <li class="value-2"><h4>View control</h4>
@@ -107,8 +107,8 @@
 
 <h2 id="considerations-split-action-bars">Layout Considerations for Split Action Bars</h2>
 
-<div class="layout-content-row">
-  <div class="layout-content-col span-8 with-callouts">
+<div class="cols">
+  <div class="col-8 with-callouts">
 
 <p>When splitting up content across multiple action bars, you generally have three possible locations
 for action bar content:</p>
@@ -124,7 +124,7 @@
 <p>To display actions and, if necessary, the action overflow, use the bottom bar.</p>
 
   </div>
-  <div class="layout-content-col span-5">
+  <div class="col-5">
 
     <img src="{@docRoot}design/media/action_bar_pattern_considerations.png">
 
@@ -144,8 +144,8 @@
 
 <p>For guidance on prioritizing actions, use the FIT scheme.</p>
 
-<div class="layout-content-row">
-  <div class="layout-content-col span-4">
+<div class="cols">
+  <div class="col-4">
 
 <p><strong>F &mdash; Frequent</strong></p>
 <ul>
@@ -155,7 +155,7 @@
 </ul>
 
   </div>
-  <div class="layout-content-col span-4">
+  <div class="col-4">
 
 <p><strong>I &mdash; Important</strong></p>
 <ul>
@@ -164,7 +164,7 @@
 </ul>
 
   </div>
-  <div class="layout-content-col span-4">
+  <div class="col-4">
 
 <p><strong>T &mdash; Typical</strong></p>
 <ul>
@@ -194,8 +194,8 @@
 
 </p>
 
-<div class="layout-content-row">
-  <div class="layout-content-col span-6">
+<div class="cols">
+  <div class="col-6">
 
 <h4>Action overflow</h4>
 <p>The action overflow in the action bar provides access to your app's less frequently used actions.
@@ -203,7 +203,7 @@
 display the action overflow when the user presses the key.</p>
 
   </div>
-  <div class="layout-content-col span-7">
+  <div class="col-7">
 
     <img src="{@docRoot}design/media/action_bar_pattern_overflow.png">
     <div class="figure-caption">
@@ -285,4 +285,4 @@
 <p>Sometimes it is important to display contextual information for your app that's always visible.
 Examples are the number of unread messages in a messaging inbox view or the Now Playing information
 in a music player. Carefully plan which important information you would like to display and
-structure your action bars accordingly.</p>
\ No newline at end of file
+structure your action bars accordingly.</p>
diff --git a/docs/html/design/patterns/app-structure.jd b/docs/html/design/patterns/app-structure.jd
index 404dd4d..4f3106e 100644
--- a/docs/html/design/patterns/app-structure.jd
+++ b/docs/html/design/patterns/app-structure.jd
@@ -25,13 +25,13 @@
 <p>A typical Android app consists of top level and detail/edit views. If the navigation hierarchy is
 deep and complex, category views connect top level and detail views.</p>
 
-<div class="layout-content-row">
-  <div class="layout-content-col span-9">
+<div class="cols">
+  <div class="col-9">
 
     <img src="{@docRoot}design/media/app_structure_overview.png">
 
   </div>
-  <div class="layout-content-col span-4">
+  <div class="col-4">
 
 <h4>Top level views</h4>
 <p>The top level of the app typically consists of the different views that your app supports. The views
@@ -57,8 +57,8 @@
 <p>Ask yourself: "What are my typical users most likely going to want to do in my app?", and structure
 your start screen experience accordingly.</p>
 
-<div class="layout-content-row">
-  <div class="layout-content-col span-5">
+<div class="cols">
+  <div class="col-5">
 
 <h4>Put content forward</h4>
 <p>Many apps focus on the content display. Avoid navigation-only screens and instead let people get to
@@ -66,7 +66,7 @@
 layouts that are visually engaging and appropriate for the data type and screen size.</p>
 
   </div>
-  <div class="layout-content-col span-8">
+  <div class="col-8">
 
     <img src="{@docRoot}design/media/app_structure_market.png">
     <div class="figure-caption">
@@ -80,8 +80,8 @@
 
 <h4>Set up action bars for navigation and actions</h4>
 
-<div class="layout-content-row">
-  <div class="layout-content-col span-5">
+<div class="cols">
+  <div class="col-5">
 
   <p>All screens in your app should display action bars to provide consistent navigation and surface
 important actions.</p>
@@ -96,7 +96,7 @@
     </ul>
 
   </div>
-  <div class="layout-content-col span-8">
+  <div class="col-8">
 
     <img src="{@docRoot}design/media/app_structure_gmail.png">
     <div class="figure-caption">
@@ -111,8 +111,8 @@
 <p>The top level communicates your app’s capabilities by introducing the user to the major functional areas. In many cases the top level will consist of multiple views, and you need to make sure that the user can navigate between them efficiently. Android supports a number of view controls for this task. Use the control that best matches your app's navigation needs:</p>
 
 <h4>Fixed tabs</h4>
-<div class="layout-content-row">
-  <div class="layout-content-col span-6">
+<div class="cols">
+  <div class="col-6">
 <p><em>Fixed tabs</em> display top-level views concurrently and make it easy to explore and switch between them. They are always visible on the screen, and can't be moved out of the way like scrollable tabs. <em>Fixed tabs</em> should always allow the user to navigate between the views by swiping left or right on the content area.</p>
 <p><strong>Use tabs if</strong>:</p>
 <ul>
@@ -122,7 +122,7 @@
 </ul>
 
   </div>
-  <div class="layout-content-col span-7">
+  <div class="col-7">
 
     <img src="{@docRoot}design/media/app_structure_default_tabs.png">
     <div class="figure-caption">
@@ -132,8 +132,8 @@
   </div>
 </div>
 
-<div class="layout-content-row">
-  <div class="layout-content-col span-6">
+<div class="cols">
+  <div class="col-6">
 
 <h4>Spinners</h4>
 <p>A <em>spinner</em> is a drop-down menu that allows users to switch between views of your app. </p>
@@ -144,7 +144,7 @@
 </ul>
 
   </div>
-  <div class="layout-content-col span-7">
+  <div class="col-7">
 
     <img src="{@docRoot}design/media/app_structure_spinner.png">
     <div class="figure-caption">
@@ -155,8 +155,8 @@
 </div>
 
 <h4>Navigation drawers</h4>
-<div class="layout-content-row">
-  <div class="layout-content-col span-6">
+<div class="cols">
+  <div class="col-6">
 <p>A <em>navigation drawer</em> is a slide-out menu that allows users to switch between views of your app. It can hold a large number of items and is accessible from anywhere in your app. Navigation drawers show your app's top-level views, but can also provide navigation to lower-level screens. This makes them particularly suitable for complex apps.</p>
 
 <p><strong>Use navigation drawers if</strong>:</p>
@@ -169,7 +169,7 @@
 </ul>
 
   </div>
-  <div class="layout-content-col span-7">
+  <div class="col-7">
     <img src="{@docRoot}design/media/app_structure_drawer.png">
     <div class="figure-caption">
       Navigation drawer from the Keep app.
@@ -196,8 +196,8 @@
 
 <div class="vspace size-1">&nbsp;</div>
 
-<div class="layout-content-row">
-  <div class="layout-content-col span-8">
+<div class="cols">
+  <div class="col-8">
 
 <p>If the categories are familiar, predictable, or closely related, use scrolling tabs (where not all
 items are in view simultaneously). Keep the number of scrolling tabs at a manageable level to
@@ -210,7 +210,7 @@
     </div>
 
   </div>
-  <div class="layout-content-col span-5">
+  <div class="col-5">
 
 <p>If the categories in the tabs are not closely related, favor fixed tabs, so that all categories are
 in view at the same time.</p>
@@ -257,14 +257,14 @@
 
 <p>The detail view allows you to view and act on your data. The layout of the detail view depends on the data type being displayed, and therefore differs widely among apps.</p>
 
-<div class="layout-content-row">
-  <div class="layout-content-col span-4">
+<div class="cols">
+  <div class="col-4">
 
 <h4>Layout</h4>
 <p>Consider the activities people will perform in the detail view and arrange the layout accordingly.</p>
 
   </div>
-  <div class="layout-content-col span-9">
+  <div class="col-9">
 
     <img src="{@docRoot}design/media/app_structure_people_detail.png">
 
diff --git a/docs/html/design/patterns/buttons.jd b/docs/html/design/patterns/buttons.jd
index 2d65b2d..085acec 100644
--- a/docs/html/design/patterns/buttons.jd
+++ b/docs/html/design/patterns/buttons.jd
@@ -19,13 +19,13 @@
   back into view.
 </p>
 
-<div class="layout-content-row">
-  <div class="layout-content-col span-6">
+<div class="cols">
+  <div class="col-6">
     <h4>Lean Back</h4>
     <p>Touch the screen anywhere to bring back system bars. </p>
     <img src="{@docRoot}design/media/fullscreen_leanback.png" style="width:311px;">
   </div>
-  <div class="layout-content-col span-6">
+  <div class="col-6">
     <h4>Immersive</h4>
     <p>Swipe from the any edge of the screen with a hidden bar to bring back system bars. </p>
     <img src="{@docRoot}design/media/fullscreen_immersive_swipe_bottom.png" style="width:160px;float:right">
@@ -69,8 +69,8 @@
   interrupted by accidental touches and swipes.
 </p>
 
-<div class="layout-content-row">
-  <div class="layout-content-col span-6">
+<div class="cols">
+  <div class="col-6">
     <img src="{@docRoot}design/media/fullscreen_immersive_swipe_bottom.png" style="width:160px;float:right">
     <img src="{@docRoot}design/media/fullscreen_immersive_swipe_top.png" style="width:160px">
   </div>
diff --git a/docs/html/design/patterns/compatibility.jd b/docs/html/design/patterns/compatibility.jd
index dfc52c0..2905676 100644
--- a/docs/html/design/patterns/compatibility.jd
+++ b/docs/html/design/patterns/compatibility.jd
@@ -20,8 +20,8 @@
 
 <h2 id="older-hardware">Adapting Android 4.0 to Older Hardware and Apps</h2>
 
-<div class="layout-content-row">
-  <div class="layout-content-col span-6">
+<div class="cols">
+  <div class="col-6">
 
 <h4>Phones with virtual navigation controls</h4>
 <p>Android apps written for Android 3.0 and later display actions in the action bar. Actions that don't
@@ -30,15 +30,15 @@
 <p>Users access the action overflow by touching it in the action bar.</p>
 
   </div>
-  <div class="layout-content-col span-7">
+  <div class="col-7">
 
     <img src="{@docRoot}design/media/compatibility_virtual_nav.png">
 
   </div>
 </div>
 
-<div class="layout-content-row">
-  <div class="layout-content-col span-6">
+<div class="cols">
+  <div class="col-6">
 
 <h4>Phones with physical navigation keys</h4>
 <p>Android phones with traditional navigation hardware keys don't display the virtual navigation bar at
@@ -46,15 +46,15 @@
 resulting actions popup has the same style as in the previous example, but is displayed at the bottom of the screen.</p>
 
   </div>
-  <div class="layout-content-col span-7">
+  <div class="col-7">
 
     <img src="{@docRoot}design/media/compatibility_physical_buttons.png">
 
   </div>
 </div>
 
-<div class="layout-content-row">
-  <div class="layout-content-col span-6">
+<div class="cols">
+  <div class="col-6">
 
 <h4>Legacy apps on phones with virtual navigation controls</h4>
 <p>When you run an app that was built for Android 2.3 or earlier on a phone with virtual navigation
@@ -62,7 +62,7 @@
 can touch the control to display the app's actions in the traditional Android menu styling.</p>
 
   </div>
-  <div class="layout-content-col span-7">
+  <div class="col-7">
 
     <img src="{@docRoot}design/media/compatibility_legacy_apps.png">
 
diff --git a/docs/html/design/patterns/confirming-acknowledging.jd b/docs/html/design/patterns/confirming-acknowledging.jd
index d39d32d..201e5a05 100644
--- a/docs/html/design/patterns/confirming-acknowledging.jd
+++ b/docs/html/design/patterns/confirming-acknowledging.jd
@@ -4,12 +4,12 @@
 
 <p>In some situations, when a user invokes an action in your app, it's a good idea to <em>confirm</em> or <em>acknowledge</em> that action through text.</p>
 
-<div class="layout-content-row">
-  <div class="layout-content-col span-6">
+<div class="cols">
+  <div class="col-6">
     <img src="{@docRoot}design/media/confirm_ack_confirming.png">
     <p><strong>Confirming</strong> is asking the user to verify that they truly want to proceed with an action they just invoked. In some cases, the confirmation is presented along with a warning or critical information related to the action that they need to consider.</p>
   </div>
-  <div class="layout-content-col span-6">
+  <div class="col-6">
     <img src="{@docRoot}design/media/confirm_ack_acknowledge.png">
     <p><strong>Acknowledging</strong> is displaying text to let the user know that the action they just invoked has been completed. This removes uncertainty about implicit operations that the system is taking. In some cases, the acknowledgment is presented along with an option to undo the action.</p>
   </div>
@@ -22,14 +22,14 @@
 <img src="{@docRoot}design/media/confirm_ack_flowchart.png">
 
 <h2>Confirming</h2>
-<div class="layout-content-row">
-  <div class="layout-content-col span-6">
+<div class="cols">
+  <div class="col-6">
     <h4>Example: Google Play Books</h4>
     <img src="{@docRoot}design/media/confirm_ack_ex_books.png">
     <p>In this example, the user has requested to delete a book from their Google Play library. An <a href="{@docRoot}design/building-blocks/dialogs.html#alerts">alert</a> appears to confirm this action because it's important to understand that the book will no longer be available from any device.</p>
     <p>When crafting a confirmation dialog, make the title meaningful by echoing the requested action.</p>
   </div>
-  <div class="layout-content-col span-7">
+  <div class="col-7">
     <h4>Example: Android Beam</h4>
     <img src="{@docRoot}design/media/confirm_ack_ex_beam.png">
     <p>Confirmations don't necessarily have to be presented in an alert with two buttons. After initiating Android Beam, the user is prompted to touch the content to be shared (in this example, it's a photo). If they decide not to proceed, they simply move their phone away.</p>
@@ -37,15 +37,15 @@
 </div>
 
 <h2>Acknowledging</h2>
-<div class="layout-content-row">
-  <div class="layout-content-col span-6">
+<div class="cols">
+  <div class="col-6">
     <h4>Example: Abandoned Gmail draft saved</h4>
     <img src="{@docRoot}design/media/confirm_ack_ex_draftsave.png">
     <p>In this example, if the user navigates back or up from the Gmail compose screen, something possibly unexpected happens: the current draft is automatically saved. An acknowledgment in the form of a toast makes that apparent. It fades after a few seconds.</p>
     <p>Undo isn't appropriate here because saving was initiated by the app, not the user. And it's quick and easy to resume composing the message by navigating to the list of drafts.</p>
 
   </div>
-  <div class="layout-content-col span-6">
+  <div class="col-6">
     <h4>Example: Gmail conversation deleted</h4>
     <img src="{@docRoot}design/media/confirm_ack_draft_deleted.png">
     <p>After the user deletes a conversation from the list in Gmail, an acknowledgment appears with an undo option. The acknowledgment remains until the user takes an unrelated action, such as scrolling the list.</p>
@@ -53,14 +53,14 @@
 </div>
 
 <h2>No Confirmation or Acknowledgment</h2>
-<div class="layout-content-row">
-  <div class="layout-content-col span-6">
+<div class="cols">
+  <div class="col-6">
     <h4>Example: +1'ing</h4>
     <img style="padding: 33px 0 30px;" src="{@docRoot}design/media/confirm_ack_ex_plus1.png">
     <p><strong>Confirmation is unnecessary</strong>. If the user +1'd by accident, it's not a big deal. They can just touch the button again to undo the action.</p>
     <p><strong>Acknowledgment is unnecessary</strong>. The user will see the +1 button bounce and turn red. That's a very clear signal.</p>
   </div>
-  <div class="layout-content-col span-7">
+  <div class="col-7">
     <h4>Example: Removing an app from the Home Screen</h4>
     <img src="{@docRoot}design/media/confirm_ack_ex_removeapp.png">
     <p><strong>Confirmation is unnecessary</strong>. This is a deliberate action: the user must drag and drop an item onto a relatively large and isolated target. Therefore, accidents are highly unlikely. But if the user regrets the decision, it only takes a few seconds to bring it back again.</p>
diff --git a/docs/html/design/patterns/fullscreen.jd b/docs/html/design/patterns/fullscreen.jd
index 624d44c..1c95f21 100644
--- a/docs/html/design/patterns/fullscreen.jd
+++ b/docs/html/design/patterns/fullscreen.jd
@@ -19,13 +19,13 @@
   back into view.
 </p>
 
-<div class="layout-content-row">
-  <div class="layout-content-col span-6">
+<div class="cols">
+  <div class="col-6">
     <h4>Lean Back</h4>
     <p>Touch the screen anywhere to bring back system bars. </p>
     <img src="{@docRoot}design/media/fullscreen_leanback.png" style="width:311px;">
   </div>
-  <div class="layout-content-col span-6">
+  <div class="col-6">
     <h4>Immersive</h4>
     <p>Swipe from the any edge of the screen with a hidden bar to bring back system bars. </p>
     <img src="{@docRoot}design/media/fullscreen_immersive_swipe_bottom.png" style="width:160px;float:right">
@@ -69,8 +69,8 @@
   interrupted by accidental touches and swipes.
 </p>
 
-<div class="layout-content-row">
-  <div class="layout-content-col span-6">
+<div class="cols">
+  <div class="col-6">
     <img src="{@docRoot}design/media/fullscreen_immersive_swipe_bottom.png" style="width:160px;float:right">
     <img src="{@docRoot}design/media/fullscreen_immersive_swipe_top.png" style="width:160px">
   </div>
diff --git a/docs/html/design/patterns/gestures.jd b/docs/html/design/patterns/gestures.jd
deleted file mode 100644
index ada0735..0000000
--- a/docs/html/design/patterns/gestures.jd
+++ /dev/null
@@ -1,135 +0,0 @@
-page.title=Gestures
-page.tags=gesture,input,touch
-@jd:body
-
-<a class="notice-designers-material"
-   href="http://www.google.com/design/spec/patterns/gestures.html">
-  <div>
-    <h3>Material Design</h3>
-    <p>Gestures<p>
-  </div>
-</a>
-
-<p>Gestures allow users to interact with your app by manipulating the screen objects you provide. The
-following table shows the core gesture set that is supported in Android.</p>
-
-<div class="vspace size-2">&nbsp;</div>
-
-<div class="layout-content-row">
-
-  <div class="layout-content-col span-4">
-    <img src="{@docRoot}design/media/gesture_touch.png">
-    <h4>Touch</h4>
-    <p>Triggers the default functionality for a given item.</p>
-    <ul>
-      <li class="no-bullet with-icon action">
-        <h4>Action</h4>
-        <p>Press, lift</p></li>
-    </ul>
-  </div>
-
-  <div class="layout-content-col span-4">
-    <img src="{@docRoot}design/media/gesture_longtouch.png">
-    <h4>Long press</h4>
-    <p>Enters data selection mode. Allows you to select one or more items in a view and act upon
-    the data using a contextual action bar. Avoid using long press for showing contextual menus.</p>
-    <ul>
-      <li class="no-bullet with-icon action">
-        <h4>Action</h4>
-        <p>Press, wait, lift</p></li>
-    </ul>
-  </div>
-
-  <div class="layout-content-col span-4">
-    <img src="{@docRoot}design/media/gesture_swipe.png">
-    <h4>Swipe or drag</h4>
-    <p>Scrolls overflowing content, or navigates between views in the same hierarchy. Swipes are
-    quick and affect the screen even after the finger is picked up. Drags are slower and more precise,
-    and the screen stops responding when the finger is picked up.</p>
-    <ul>
-      <li class="no-bullet with-icon action">
-        <h4>Action</h4>
-        <p>Press, move, lift</p></li>
-    </ul>
-  </div>
-
-</div>
-
-<div class="vspace size-2">&nbsp;</div>
-
-<div class="layout-content-row">
-
-  <div class="layout-content-col span-4">
-    <img src="{@docRoot}design/media/gesture_drag.png">
-    <h4>Long press drag</h4>
-    <p>Rearranges data within a view, or moves data into a container (e.g. folders on Home Screen).</p>
-    <ul>
-      <li class="no-bullet with-icon action">
-        <h4>Action</h4>
-        <p>Long press, move, lift</p></li>
-    </ul>
-  </div>
-
-  <div class="layout-content-col span-4">
-    <img src="{@docRoot}design/media/gesture_doubletouch.png">
-    <h4>Double touch </h4>
-    <p> Scales up a standard amount around the target with each repeated gesture until reaching
-    maximum scale. For nested views, scales up the smallest targetable view, or returns it to
-    its original scale. Also used as a secondary gesture for text selection.</p>
-    <ul>
-      <li class="no-bullet with-icon action">
-        <h4>Action</h4>
-        <p>Two touches in quick succession</p>
-      </li>
-    </ul>
-  </div>
-
-  <div class="layout-content-col span-4">
-    <img src="{@docRoot}design/media/gesture_doubletouchdrag.png">
-    <h4>Double touch drag</h4>
-    <p>Scales content by pushing away or pulling closer, centered around gesture.</p>
-    <ul>
-      <li class="no-bullet with-icon action">
-        <h4>Action</h4>
-        <p>A single touch followed in quick succession by a drag up or down:</p>
-        <ul style="padding-left:1.5em;list-style-type:disc;">
-          <li>Dragging up decreases content scale</li>
-          <li>Dragging down increases content scale</li>
-          <li>Reversing drag direction reverses scaling.</li>
-        </ul>
-      </li>
-    </ul>
-  </div>
-
-</div>
-
-
-<div class="vspace size-2">&nbsp;</div>
-
-<div class="layout-content-row">
-
-  <div class="layout-content-col span-4">
-    <img src="{@docRoot}design/media/gesture_pinchopen.png" style="margin-left:-4px">
-    <h4>Pinch open</h4>
-    <p>Zooms into content.</p>
-    <ul>
-      <li class="no-bullet with-icon action">
-        <h4>Action</h4>
-        <p>2-finger press, move outwards, lift</p></li>
-    </ul>
-  </div>
-
-  <div class="layout-content-col span-4">
-    <img src="{@docRoot}design/media/gesture_pinchclose.png">
-    <h4>Pinch close</h4>
-    <p>Zooms out of content.</p>
-    <ul>
-      <li class="no-bullet with-icon action">
-        <h4>Action</h4>
-        <p>2-finger press, move inwards, lift</p>
-      </li>
-    </ul>
-  </div>
-
-</div>
-
diff --git a/docs/html/design/patterns/help.jd b/docs/html/design/patterns/help.jd
index 97949e2..6ef155a 100644
--- a/docs/html/design/patterns/help.jd
+++ b/docs/html/design/patterns/help.jd
@@ -21,8 +21,8 @@
 <em>To teach high value functionality that's only available through a gesture.</em></p>
 
 <p>For example, we use help content to teach users how to place apps on their Home screen. This functionality is:</p>
-<div class="layout-content-row">
-  <div class="layout-content-col span-8">
+<div class="cols">
+  <div class="col-8">
     <ul>
       <li><strong>High value</strong>
       <p style="margin-top:0;">Without it, users wouldn't be able to customize the most frequently visited Android screen to meet their needs.</p></li>
@@ -31,7 +31,7 @@
     </ul>
     <p>However, not all high value gesture-only functionality needs a tutorial. For example, don't teach users how to scroll content. They already know how because it's a fundamental, system-wide interaction.</p>
   </div>
-  <div class="layout-content-col span-5">
+  <div class="col-5">
     <img src="{@docRoot}design/media/help_cling.png">
     <div class="figure-caption">
       The first time each user visits the All Apps screen, a semi-transparent overlay appears to teach an important gesture.
@@ -44,11 +44,11 @@
 
 <p>On every screen in your app, offer help in the <a href="{@docRoot}design/patterns/actionbar.html">action overflow</a>. Always make it the very last item in the menu and label it "Help".</p>
 
-<div class="layout-content-row">
-  <div class="layout-content-col span-7">
+<div class="cols">
+  <div class="col-7">
     <img src="{@docRoot}design/media/help_overflow.png">
   </div>
-  <div class="layout-content-col span-6">
+  <div class="col-6">
     <img src="{@docRoot}design/media/help_solo_overflow.png">
     <div class="figure-caption">
       Even if your screen has no other action overflow items, "Help" should appear there and not be promoted to the action bar.
@@ -67,28 +67,28 @@
 
 <p>When someone chooses "Help":</p>
 
-<div class="layout-content-row">
-  <div class="layout-content-col span-4">
+<div class="cols">
+  <div class="col-4">
     <img src="{@docRoot}design/media/help_dont.png">
   </div>
-  <div class="layout-content-col span-4">
+  <div class="col-4">
     <img src="{@docRoot}design/media/help_better.png">
   </div>
-  <div class="layout-content-col span-5">
+  <div class="col-5">
     <img src="{@docRoot}design/media/help_evenbetter.png">
   </div>  
 </div>
 
-<div class="layout-content-row">
-  <div class="layout-content-col span-4">
+<div class="cols">
+  <div class="col-4">
     <h4 class="do-dont-label bad">Don't</h4>
     <p>Present a dialog asking them to choose between help and other options.</p>
   </div>
-  <div class="layout-content-col span-4">
+  <div class="col-4">
     <h4 class="do-dont-label good">Better</h4>
     <p>Immediately launch a web browser with help content. Place other options in a footer.</p>
   </div>
-  <div class="layout-content-col span-5">
+  <div class="col-5">
     <h4 class="do-dont-label good">Even Better</h4>
     <p>Build a help screen in your app and offer other options in the action bar. For example, you could let users contact you with questions or feedback through an action button. The action overflow is the ideal place for non-help information that users rarely need.</p>
     <p>This requires more development work than launching a web browser, but it's a nicer experience for users because they don't leave your app to get the help they need and doesn't require a network connection.</p>
diff --git a/docs/html/design/patterns/index.jd b/docs/html/design/patterns/index.jd
deleted file mode 100644
index e091a29..0000000
--- a/docs/html/design/patterns/index.jd
+++ /dev/null
@@ -1,30 +0,0 @@
-page.title=Patterns
-header.justLinks=1
-footer.hide=1
-@jd:body
-
-<style>
-#landing-graphic-container {
-  position: relative;
-}
-
-#text-overlay {
-  position: absolute;
-  left: 0;
-  top: 492px;
-  width: 200px;
-}
-</style>
-
-<div id="landing-graphic-container">
-  <div id="text-overlay">
-    <span itemprop="description">Design apps that behave in a consistent, predictable
-    fashion.</span>
-    <br><br>
-    <a href="{@docRoot}design/patterns/new.html" class="landing-page-link">New in Android</a>
-  </div>
-
-  <a href="{@docRoot}design/patterns/new.html">
-    <img src="{@docRoot}design/media/patterns_landing.png">
-  </a>
-</div>
diff --git a/docs/html/design/patterns/multi-pane-layouts.jd b/docs/html/design/patterns/multi-pane-layouts.jd
deleted file mode 100644
index dbe7d01..0000000
--- a/docs/html/design/patterns/multi-pane-layouts.jd
+++ /dev/null
@@ -1,130 +0,0 @@
-page.title=Multi-pane Layouts
-page.tags="tablet","navigation","layout","fragment"
-page.metaDescription=Design guide with examples of how to flatten navigation and provide improved layout across the range of Android devices.
-
-@jd:body
-
-
-<a class="notice-designers-material"
-  href="http://www.google.com/design/spec/layout/structure.html#structure-ui-regions">
-  <div>
-    <h3>Material Design</h3>
-    <p>UI Regions and Guidance<p>
-  </div>
-</a>
-
-<a class="notice-developers" href="{@docRoot}training/basics/fragments/index.html">
-  <div>
-    <h3>Developer Docs</h3>
-    <p>Building a Dynamic UI with Fragments</p>
-  </div>
-</a>
-
-<p>When writing an app for Android, keep in mind that Android devices
-come in many different screen sizes and types. Make sure that your app consistently provides a
-balanced and aesthetically pleasing layout by adjusting its content to varying screen sizes and
-orientations.</p>
-
-<p><em>Panels</em> are a great way for your app to achieve this. They allow you to combine multiple views into
-one compound view when a lot of horizontal screen real estate is available and by splitting them up
-when less space is available.</p>
-<h2 id="combining-views">Combining Multiple Views Into One</h2>
-
-<p>On smaller devices your content is typically divided into a master grid or list view and a detail
-view. Touching an item in the master view opens a different screen showing that item's detail
-information.</p>
-
-<img src="{@docRoot}design/media/multipane_views.png">
-
-<p>Because tablets have more screen real estate than phones, you can use panels to combine the related
-list and detail views into a single compound view. This uses the additional space more efficiently
-and makes navigating the app easier. </p>
-
-<img src="{@docRoot}design/media/multipane_view_tablet.png">
-
-<p>In general, use the pane on the right to present more information about the item you selected in the
-left pane. Make sure to keep the item in the left pane selected in order to establish the
-relationship between the panels.</p>
-<h2 id="orientation">Compound Views and Orientation Changes</h2>
-
-<p>Screens should strive to have the same functionality regardless of orientation. If you use a compound view in
-one orientation, try not to split it up when the user rotates the screen. There are several techniques
-you can use to adjust the layout after orientation change while keeping functional parity intact.</p>
-
-<div class="layout-content-row">
-  <div class="layout-content-col span-8">
-
-    <img src="{@docRoot}design/media/multipane_stretch.png">
-
-  </div>
-  <div class="layout-content-col span-5">
-
-<h4>Stretch/compress</h4>
-<p>Adjust the column width of your left pane to achieve a balanced layout in both orientations.</p>
-
-  </div>
-</div>
-
-<div class="layout-content-row">
-  <div class="layout-content-col span-8">
-
-    <img src="{@docRoot}design/media/multipane_stack.png">
-
-  </div>
-  <div class="layout-content-col span-5">
-
-<h4>Stack</h4>
-<p>Rearrange the panels on your screen to match the orientation.</p>
-
-  </div>
-</div>
-
-<div class="layout-content-row">
-  <div class="layout-content-col span-8">
-
-    <img src="{@docRoot}design/media/multipane_expand.png">
-
-  </div>
-  <div class="layout-content-col span-5">
-
-<h4>Expand/collapse</h4>
-<p>When the device rotates, collapse the left pane view to only show the most important information.</p>
-
-  </div>
-</div>
-
-<div class="layout-content-row">
-  <div class="layout-content-col span-8">
-
-    <img src="{@docRoot}design/media/multipane_show.png">
-
-  </div>
-  <div class="layout-content-col span-5">
-
-<h4>Show/hide</h4>
-<p>If your screen cannot accommodate the compound view on rotation show the right pane in full screen view on rotation to portrait. Use the Up icon in action bar to show the parent screen.</p>
-
-  </div>
-</div>
-
-
-
-
-<h2 id="checklist">Checklist</h2>
-
-<ul>
-<li>
-<p>Plan in advance on how your app scales to different screen sizes and screen orientations.</p>
-</li>
-<li>
-<p>Identify the most appropriate method for the panels in your compound views to reorganize
-  themselves when screen orientation changes.</p>
-</li>
-<li>
-<p>Look for opportunities to consolidate your views into multi-panel compound views.</p>
-</li>
-<li>
-<p>Make sure that your screens try to provide functional parity after the screen orientation
-  changes.</p>
-</li>
-</ul>
diff --git a/docs/html/design/patterns/navigation-drawer.jd b/docs/html/design/patterns/navigation-drawer.jd
deleted file mode 100644
index dbac459..0000000
--- a/docs/html/design/patterns/navigation-drawer.jd
+++ /dev/null
@@ -1,346 +0,0 @@
-page.title=Navigation Drawer
-page.tags=DrawerLayout,SlidingPaneLayout
-@jd:body
-
-
-<a class="notice-designers-material"
-  href="http://www.google.com/design/spec/layout/structure.html#structure-side-nav">
-  <div>
-    <h3>Material Design</h3>
-    <p>Side Nav<p>
-  </div>
-</a>
-
-<a class="notice-developers" href="{@docRoot}training/implementing-navigation/nav-drawer.html">
-  <div>
-    <h3>Developer Docs</h3>
-    <p>Creating a Navigation Drawer</p>
-  </div>
-</a>
-
-
-<p>The navigation drawer is a panel that transitions in from the left edge of the screen and
-displays the app’s main navigation options.</p>
-
-
-<h4>Displaying the navigation drawer</h4>
-
-<p>The user can bring the navigation drawer onto the screen by swiping from the left edge of the
-screen or by touching the application icon on the action bar.</p>
-
-<p>As the navigation drawer expands, it overlays the content but not the action bar. When the
-drawer is fully extended, the action bar adjusts its content by replacing the current action
-bar title with the app name and removing all actions that are contextual to the view underneath
-the navigation drawer. The overflow menu with the standard action items for Settings and Help
-remains visible.</p>
-
-<img src="{@docRoot}design/media/navigation_drawer_overview.png">
-<div class="figure-caption">
-  The user can open the drawer panel by touching the navigation drawer indicator.
-</div>
-
-<p>Because they are transient, navigation drawers make views less cluttered. You can also use
-them at deeper levels in the navigation hierarchy, allowing users to switch to your app's most
-important screens from anywhere in the app.</p>
-
-<img src="{@docRoot}design/media/navigation_drawer_open_from_lower.png">
-<div class="figure-caption">
-  Open the drawer from anywhere in your app by swiping from the left edge of the screen.
-</div>
-
-
-<h4>Dismissing the navigation drawer</h4>
-
-<p> When the navigation drawer is expanded, the user can dismiss it in one of four ways: </p>
-<ul>
-  <li>Touching the content outside the navigation drawer</li>
-  <li>Swiping to the left anywhere on the screen (including edge swipe from right)</li>
-  <li>Touching the app icon/title in the action bar</li>
-  <li>Pressing Back</li>
-</ul>
-
-
-<h2 id="WhenToUse"> When to Use the Navigation Drawer </h2>
-
-<p> The navigation drawer is not a general replacement for top-level navigation via spinners
-or tabs. The structure of your app should guide your choice of which pattern to use for
-top-level switching. For more information on top-level switching mechanisms, see the
-<a href="{@docRoot}design/patterns/app-structure.html">Application Structure</a> design pattern.</p>
-<p> Here are some examples of where navigation drawers work best:</p>
-
-<h4>More than 3 top-level views</h4>
-<p> Navigation drawers are great for displaying a large number of navigation targets
-concurrently. Use the navigation drawer if you have more than 3 unique top-level views.
-If not, use fixed tabs for top-level organization to ease discovery and interaction.</p>
-
-<h4>Cross-navigation from lower levels</h4>
-<p> If your app requires cross-navigating between lower-level screens, consider using the
-navigation drawer. Because it is accessible from anywhere in the app, the drawer enables
-efficient navigation from lower-level screens to other important places in your app.</p>
-
-<img src="{@docRoot}design/media/navigation_drawer_cross_nav.png">
-<div class="figure-caption">
-  The navigation drawer makes cross-navigation at lower levels possible.
-</div>
-
-
-<h4>Deep navigation branches</h4>
-<p> If you have particularly deep branches, navigating to the top-level of your app can become
-repetitive and cumbersome with Up and Back alone. Since navigation drawers are accessible from
-anywhere in the app, navigation up to the top level is faster and more efficient.</p>
-
-<img src="{@docRoot}design/media/navigation_drawer_quick_to_top.png">
-<div class="figure-caption">
-  The navigation drawer allows for quick jumps to the top-level of your app, removing the need
-  for repetitive Back or Up sequences.
-</div>
-
-
-<h2 id="Hubs">Navigation Hubs</h2>
-
-<p>The navigation drawer is a reflection of your app’s structure and displays its major
-navigation hubs. Think of navigation hubs as those places in your app that a user will want
-to visit frequently or use as a jumping-off point to other parts of the app.
-At a minimum, the navigation hubs are the top-level views, since they correspond to your app’s
-major functional areas.</p>
-<p> If your app’s structure is deep, you can add screens from lower levels that your users will
-likely visit often and make those navigation hubs as well.</p>
-
-<img src="{@docRoot}design/media/navigation_drawer_navigation_hubs.png">
-<div class="figure-caption">
-  The navigation drawer contains all of your app's navigation hubs. Include your top level
-  screens as well as important lower-level screens.
-</div>
-
-<div class="layout-content-row">
-  <div class="layout-content-col span-8">
-  <p> To facilitate access to the navigation drawer on navigation hubs, all screens that
-  correspond to an entry in your navigation drawer should show the navigation drawer indicator
-  next to the application icon in the action bar. Touching the app icon causes the navigation
-  drawer to slide in from the left. </p>
-  <p> All other lower-level screens show the traditional Up indicator next to the application
-  icon. The drawer is still accessible with an edge-swipe, but is not featured in the action bar.</p>
-  </div>
-  <div class="layout-content-col span-5">
-    <img src="{@docRoot}design/media/navigation_drawer_indicator_big.png">
-    <div class="figure-caption">
-    App icon with navigation drawer indicator.
-  </div>
-  </div>
-</div>
-
-
-<h2 id="Content">Content of the Navigation Drawer</h2>
-
-<p> Keep the content of the navigation drawer focused on app navigation. Expose the navigation
-hubs of your app as list items inside the navigation drawer - one item per row.
-
-<div class="layout-content-row">
-  <div class="layout-content-col span-8">
-  <h4>Titles, icons, and counters</h4>
-  <p> You can structure navigation targets by adding titles. The titles are not interactive,
-  but just organize navigation targets into functional topics. If you have many navigation
-  targets, use titles to orient the user within the drawer.</p>
-  <p> Navigation targets can have optional leading icons as well as trailing counters. Use
-  the counters to inform users about a changed state of data in the corresponding view.</p>
-  </div>
-  <div class="layout-content-col span-5">
-  <img src="{@docRoot}design/media/navigation_drawer_titles_icons.png">
-  <div class="figure-caption">
-    Use titles and icons to organize your drawer.
-  </div>
-  </div>
-</div>
-
-<div class="layout-content-row">
-  <div class="layout-content-col span-8">
-  <img src="{@docRoot}design/media/navigation_drawer_collapse.png">
-  <div class="figure-caption">
-    Collapsible navigation items are split. Use the left side for navigation and the right
-    to collapse and expand items.
-    </div>
-  </div>
-  <div class="layout-content-col span-5">
-  <h4>Collapsible navigation items</h4>
-  <p>If you have many views with some subordinate to others, consider collapsing them into one
-  expandable item to conserve space.
-  The parent in the navigation drawer then turns into a split item. The left side allows
-  navigation to the parent item’s view, and the right side collapses or expands the list of
-  child items. </p>
-  <p> At launch, the initial state of the collapsible items is up to you. As a rule, all
-  top-level view entries of the navigation drawer should be visible. If you have many collapsible
-  items, consider collapsing all items to allow the user to see the top-level views in their
-  entirety.</p>
-  <p> When the user opens the drawer from a lower-level screen, expand the associated branch
-  of the top-level view to give a stronger sense of place and highlight navigation opportunities
-  close to the user’s current
-  location in the app.</p>
-  </div>
-</div>
-
-
-<h2 id="ActionBar">Navigation Drawers and Action Bars</h2>
-
-<p> When the user expands the navigation drawer, the task focus switches to selecting an item
-from the drawer. Because the drawer does not overlay the action bar, users may not realize that
-the items in the action bar do not pertain to the navigation drawer. </p>
-<p> To reduce confusion, adjust the content of the action bar to the following, once the drawer
-is fully expanded:</p>
-<ul>
-  <li>App icon</li>
-  <li>App name</li>
-  <li>Remove actions from the action bar that are contextual to the underlying view (such as
-  Create new, Refresh). You may retain actions with global scope, such as “Search”.</li>
-  <li>Overflow menu with expected navigation targets, such as Settings and Help.</li>
-</ul>
-
-<img src="{@docRoot}design/media/navigation_drawer_open_overflow.png">
-<div class="figure-caption">
-  Clean up the action bar when the drawer is fully expanded. Remove actions that are not needed
-  and display your app's name in the title area.
-</div>
-
-<h4>Actions</h4>
-<div class="layout-content-row">
-  <div class="layout-content-col span-6">
-  <img src="{@docRoot}design/media/navigation_drawer_nav_and_actions.png">
-    <div class="figure-caption">
-    Keep actions on the right side of the action bar and in the overflow
-  </div>
-  </div>
-  <div class="layout-content-col span-6">
-  <p> Don’t place actions in the navigation drawer. Actions belong in the action bar, and the
-  user expects to see them there. Keep in mind that not all applications use the navigation
-  drawer pattern. It may be tempting to expose all your app’s capabilities in a single place,
-  but keep the bigger picture in mind. Place your actions where all apps display them.</p>
-  </div>
-</div>
-<div class="layout-content-row">
-  <div class="layout-content-col span-6">
-  <p> This also applies to common navigation targets, such as access to Help or the app’s
-  Settings. As per style guide convention Help and Settings are always located in the action
-  overflow.</p>
-  </div>
-  <div class="layout-content-col span-6">
-  <img src="{@docRoot}design/media/navigation_drawer_settings_help.png">
-    <div class="figure-caption">
-    Keep Help and Settings in the overflow.
-  </div>
-  </div>
-</div>
-
-
-<h4>Contextual action bars</h4>
-<p> Sometimes the user will be in a state where a contextual action bar (CAB) appears instead
-of the app’s action bar. This typically happens when the user selects text or selects multiple
-items after a press-and-hold gesture. While the CAB is visible, you should still allow the
-user to open the navigation drawer using an edge swipe. However, replace the CAB with the
-standard action bar while the navigation drawer is open. When the user dismisses the drawer,
-re-display the CAB.</p>
-
-<img src="{@docRoot}design/media/navigation_drawer_CAB.png">
-<div class="figure-caption">
-  Hide contextual action bars while the drawer is visible.
-</div>
-
-<p>If the user navigates away from a view with selected content, deselect the content before
-before navigating to the new view.</p>
-
-
-<h2 id="Interaction">Interaction Details</h2>
-
-<h4>Introduce the user to the drawer at first use</h4>
-<p> Upon first launch of your app, introduce the user to the navigation drawer by
-automatically opening it. This ensures that users know about the navigation drawer and prompts
-them to learn about the structure of your app by exploring its content. Continue showing the
-drawer upon subsequent launches until the user actively expands the navigation drawer manually.
-Once you know that the user understands how to open the drawer, launch the app with the
-navigation drawer closed. </p>
-
-<img src="{@docRoot}design/media/navigation_drawer_first_run.png">
-<div class="figure-caption">
-  At first use, show the navigation drawer automatically to help the user learn the
-  functionality and structure of your app.
-</div>
-
-<h4>Give the user a quick peek</h4>
-<p> If the user touches the very left edge of the screen (within 20 dp from the left), have the
-drawer peek out as soon as the finger makes contact with the display. This promotes accidental
-discovery and provides richer feedback. </p>
-
-<img src="{@docRoot}design/media/navigation_drawer_peek.png">
-<div class="figure-caption">
-  The navigation drawer peeks out when the user touches the very left edge of the screen.
-</div>
-
-<h4>Highlights</h4>
-<p> When you open the navigation drawer from a screen that is represented inside the drawer,
-highlight its entry in the drawer. Vice versa, if you open the drawer from a screen that is
-not listed in the drawer, none of the items of the drawer should be highlighted.</p>
-
-
-<h2 id="ImpactOnNav">Impact of Drawer on Overall App Navigation</h2>
-
-<p>The navigation drawer is an alternative to other top-level navigation patterns. To make apps
-with navigation drawers work consistently with apps that use a tab or spinner pattern, remember
-that all navigation requirements for system Back and Up apply.</p>
-<p>Pay special attention to the following situations:</p>
-
-<h4>System Back at the top level of the app</h4>
-<p>Touching System Back at the app’s top level never opens the navigation drawer. Instead,
-System Back behaves according to the navigation rules for the top level, such as navigating
-to the previous app within the task or navigating to the Home screen.</p>
-
-<img src="{@docRoot}design/media/navigation_drawer_top_out.png">
-<div class="figure-caption">
-  System Back does not show the drawer, but behaves according to the navigation rules for
-  the top level.
-</div>
-
-<h4>System Back after cross navigation to lower hierarchy levels</h4>
-<p>If the user navigates to a lower hierarchy screen from the navigation drawer and the screen
-has a direct parent, then the Back stack is reset and Back points to the target screen’s parent.
-This Back behavior is the same as when a user navigates into an app from a notification.</p>
-
-<img src="{@docRoot}design/media/navigation_drawer_reset_backstack.png">
-<div class="figure-caption">
-  Reset the Back stack if your lower-level navigation target has direct parents.
-</div>
-
-
-<h2 id="Style">Style</h2>
-
-<p>The width of the navigation drawer depends on the content you want to display, but should be
-between a minimum of 240 dp and a maximum of 320 dp. The height of the individual line items
-should not fall below 48 dp. See the layout guideline below for recommendations on padding and
-spacing.</p>
-
-<img src="{@docRoot}design/media/navigation_drawer_layout.png">
-<div class="figure-caption">
-  Layout guidelines for the navigation drawer.
-</div>
-
-
-<p>Pick the drawer background to best match your app’s theme. See the following examples
-for a Holo light and a Holo dark themed drawer.</p>
-
-<img src="{@docRoot}design/media/navigation_drawer_holo_dark_light.png">
-<div class="figure-caption">
-  Navigation drawers in Holo light and Holo dark themed apps.
-</div>
-
-
-<h2 id="Checklist">Navigation Drawer Checklist</h2>
-
-<p>Even if you already support a similar navigation drawer, update your drawer to this
-pattern to make sure that:</p>
-<ul>
-  <li>The action bar remains in place and adjusts its content.</li>
-  <li>Your navigation drawer overlays the content.</li>
-  <li>Any view represented in the drawer has a navigation drawer indicator in its action bar
-  that allows the drawer to be opened by touching the app icon.</li>
-  <li>You take advantage of the new visual drawer transition.</li>
-  <li>Any view not represented in the drawer maintains the traditional Up indicator in its action bar.</li>
-  <li>You stay in sync with the general navigation patterns for Up and Back.</li>
-</ul>
-
diff --git a/docs/html/design/patterns/new.jd b/docs/html/design/patterns/new.jd
index 1523cea..47b05b2 100644
--- a/docs/html/design/patterns/new.jd
+++ b/docs/html/design/patterns/new.jd
@@ -1,5 +1,6 @@
 page.title=New in Android
 page.tags=KitKat,Android 4.4
+page.image=images/cards/design-new-in-android_2x.jpg
 @jd:body
 
 
@@ -92,8 +93,8 @@
 <h3>
   Gestures
 </h3>
-<div class="layout-content-row">
-  <div class="layout-content-col span-6">
+<div class="cols">
+  <div class="col-6">
 <p>
   The updated <a href="{@docRoot}design/patterns/gestures.html">Gestures</a>
   page covers new and updated gestures introduced in Android KitKat:
@@ -101,7 +102,7 @@
   gestures are used for changing the viewing size of content.
 </p>
   </div>
-  <div class="layout-content-col span-7">
+  <div class="col-7">
     <img src="{@docRoot}design/media/gesture_doubletouch.png">
       <img src="{@docRoot}design/media/gesture_doubletouchdrag.png">
   </div>
@@ -111,8 +112,8 @@
 <h2>Android 4.1 Jelly Bean</h2>
 
 <h4>Notifications</h4>
-<div class="layout-content-row">
-  <div class="layout-content-col span-7">
+<div class="cols">
+  <div class="col-7">
     <p>Notifications have received some notable enhancements in Android 4.1:</p>
     <ul>
       <li>Users can act on notifications immediately from the drawer</li>
@@ -126,7 +127,7 @@
     href="{@docRoot}design/patterns/notifications.html">Notifications</a> page for
     more details.</p>
   </div>
-  <div class="layout-content-col span-6">
+  <div class="col-6">
     <img src="{@docRoot}design/media/new_notifications.png">
   </div>
 </div>
@@ -134,8 +135,8 @@
 <div class="vspace size-2">&nbsp;</div>
 
 <h4>Resizable Application Widgets</h4>
-<div class="layout-content-row">
-  <div class="layout-content-col span-7">
+<div class="cols">
+  <div class="col-7">
     <p>Widgets are an essential aspect of home screen customization, allowing
     "at-a-glance" views of an app's most important data and functionality right from
     the user's home screen. Android 4.1 introduces improved App Widgets that can
@@ -152,7 +153,7 @@
     href="{@docRoot}design/patterns/widgets.html">Application Widgets</a> page has useful
     details about widget types, limitations, and design considerations.</p>
   </div>
-  <div class="layout-content-col span-6">
+  <div class="col-6">
     <img src="{@docRoot}design/media/new_widgets.png">
   </div>
 </div>
@@ -160,8 +161,8 @@
 <div class="vspace size-2">&nbsp;</div>
 
 <h4>Accessibility</h4>
-<div class="layout-content-row">
-  <div class="layout-content-col span-11">
+<div class="cols">
+  <div class="col-11">
     <p>One of Android's missions is to organize the world's information and
     make it universally accessible and useful. Our mission applies to all
     users-including people with disabilities such as visual impairment, color
@@ -183,7 +184,7 @@
     <a href="{@docRoot}design/patterns/widgets.html">Widgets</a> page has
     useful details about widget types, limitations, and design considerations.</p>
   </div>
-  <div class="layout-content-col span-2">
+  <div class="col-2">
     <img src="{@docRoot}design/media/new_accessibility.png">
   </div>
 </div>
@@ -191,8 +192,8 @@
 <h2>Android 4.0 Ice Cream Sandwich</h2>
 
 <h4>Navigation bar</h4>
-<div class="layout-content-row">
-  <div class="layout-content-col span-7">
+<div class="cols">
+  <div class="col-7">
     <p>Android 4.0 removes the need for traditional hardware keys on
     phones by replacing them with a virtual navigation bar that houses
     the Back, Home and Recents buttons. Read the
@@ -200,7 +201,7 @@
     pattern to learn how the OS adapts to phones with hardware buttons and
     how pre-Android 3.0 apps that rely on menu keys are supported.</p>
   </div>
-  <div class="layout-content-col span-6">
+  <div class="col-6">
     <img src="{@docRoot}design/media/whats_new_nav_bar.png">
   </div>
 </div>
@@ -208,13 +209,13 @@
 <div class="vspace size-2">&nbsp;</div>
 
 <h4>Action bar</h4>
-<div class="layout-content-row">
-  <div class="layout-content-col span-7">
+<div class="cols">
+  <div class="col-7">
     <p>The action bar is the most important structural element of an Android
     app. It provides consistent navigation across the platform and allows your
     app to surface actions.</p>
   </div>
-  <div class="layout-content-col span-6">
+  <div class="col-6">
     <img src="{@docRoot}design/media/whats_new_action_bar.png">
   </div>
 </div>
@@ -222,14 +223,14 @@
 <div class="vspace size-2">&nbsp;</div>
 
 <h4>Multi-pane layouts</h4>
-<div class="layout-content-row">
-  <div class="layout-content-col span-7">
+<div class="cols">
+  <div class="col-7">
     <p>Creating apps that scale well across different form factors and screen
     sizes is important in the Android world. Multi-pane layouts allow you to
     combine different activities that show separately on smaller devices into
     richer compound views for tablets.</p>
   </div>
-  <div class="layout-content-col span-6">
+  <div class="col-6">
     <img src="{@docRoot}design/media/whats_new_multipanel.png">
   </div>
 </div>
@@ -238,13 +239,13 @@
 
 <h4>Selection</h4>
 
-<div class="layout-content-row">
-  <div class="layout-content-col span-7">
+<div class="cols">
+  <div class="col-7">
     <p>The long press gesture which was traditionally used to show contextual
     actions for objects is now used for data selection. When selecting data,
     contextual action bars allow you to surface actions.</p>
   </div>
-  <div class="layout-content-col span-6">
+  <div class="col-6">
     <img src="{@docRoot}design/media/whats_new_multiselect.png">
   </div>
 </div>
diff --git a/docs/html/design/patterns/notifications_k.jd b/docs/html/design/patterns/notifications_k.jd
index c8ef50b..01a12a7 100644
--- a/docs/html/design/patterns/notifications_k.jd
+++ b/docs/html/design/patterns/notifications_k.jd
@@ -22,8 +22,8 @@
 
 <h2>Anatomy of a notification</h2>
 
-<div class="layout-content-row">
-  <div class="layout-content-col span-6">
+<div class="cols">
+  <div class="col-6">
     <h4>Base Layout</h4>
     <p>At a minimum, all notifications consist of a base layout, including:</p>
     <ul>
@@ -34,7 +34,7 @@
 image is shown for the main icon</li>
     </ul>
   </div>
-  <div class="layout-content-col span-6">
+  <div class="col-6">
     <img src="{@docRoot}design/media/notifications_pattern_anatomy.png">
     <div class="figure-caption">
       Base layout of a notification
@@ -54,8 +54,8 @@
 <img src="{@docRoot}design/media/notifications_pattern_expandable.png">
 
 <h4>Actions</h4>
-<div class="layout-content-row">
-  <div class="layout-content-col span-6">
+<div class="cols">
+  <div class="col-6">
     <p>Android supports optional actions that are displayed at the bottom of
 the notification. With actions, users can handle the most common tasks for a
 particular notification from within the notification shade without having to
@@ -80,7 +80,7 @@
 or "Open")</li>
     </ul>
   </div>
-  <div class="layout-content-col span-7">
+  <div class="col-7">
     <img src="{@docRoot}design/media/notifications_pattern_two_actions.png">
     <div class="figure-caption">
       Calendar reminder notification with two actions
@@ -96,11 +96,11 @@
 notification is available from within the associated application as well.</p>
 
 <h2>Design guidelines</h2>
-<div class="layout-content-row">
-  <div class="layout-content-col span-6">
+<div class="cols">
+  <div class="col-6">
     <img src="{@docRoot}design/media/notifications_pattern_personal.png">
   </div>
-  <div class="layout-content-col span-7">
+  <div class="col-7">
     <h4>Make it personal</h4>
     <p>For notifications of items sent by another user (such as a message or
 status update), include that person's image.</p>
@@ -264,8 +264,8 @@
 
 <div class="vspace size-2">&nbsp;</div>
 
-<div class="layout-content-row">
-  <div class="layout-content-col span-7">
+<div class="cols">
+  <div class="col-7">
 
 <h4>When not to display a notification</h4>
 <p>There are however many other cases where notifications should not be
@@ -312,20 +312,20 @@
 </ul>
 
   </div>
-  <div class="layout-content-col span-6">
+  <div class="col-6">
     <img src="{@docRoot}design/media/notifications_pattern_social_fail.png">
   </div>
 </div>
 
 <h2 id="interacting-with-notifications">Interacting With Notifications</h2>
 
-<div class="layout-content-row">
-  <div class="layout-content-col span-6">
+<div class="cols">
+  <div class="col-6">
 
     <img src="{@docRoot}design/media/notifications_pattern_phone_icons.png">
 
   </div>
-  <div class="layout-content-col span-6">
+  <div class="col-6">
 
   <p>Notifications are indicated by icons in the notification area and can be
 accessed by opening the notification drawer.</p>
@@ -337,8 +337,8 @@
   </div>
 </div>
 
-<div class="layout-content-row">
-  <div class="layout-content-col span-6">
+<div class="cols">
+  <div class="col-6">
 
 <p><h4>Ongoing notifications</h4>
 <p>Ongoing notifications keep users informed about an ongoing process in the
@@ -349,15 +349,15 @@
 manually removed from the notification drawer.</p></p>
 
   </div>
-  <div class="layout-content-col span-6">
+  <div class="col-6">
 
     <img src="{@docRoot}design/media/notifications_pattern_ongoing_music.png">
 
   </div>
 </div>
 
-<div class="layout-content-row">
-  <div class="layout-content-col span-12">
+<div class="cols">
+  <div class="col-12">
     <h4>Dialogs and toasts are for feedback not notification</h4>
     <p>Your app should not create a dialog or toast if it is not currently on
 screen. Dialogs and Toasts should only be displayed as the immediate response
diff --git a/docs/html/design/patterns/pure-android.jd b/docs/html/design/patterns/pure-android.jd
index a0f672e..e617711 100644
--- a/docs/html/design/patterns/pure-android.jd
+++ b/docs/html/design/patterns/pure-android.jd
@@ -1,4 +1,5 @@
 page.title=Pure Android
+page.image=images/cards/design-pure-android_2x.png
 @jd:body
 
 <p>Most developers want to distribute their apps on multiple platforms. As you plan your app for
@@ -10,8 +11,8 @@
 
 <div class="vspace size-1">&nbsp;</div>
 
-<div class="layout-content-row">
-  <div class="layout-content-col span-5">
+<div class="cols">
+  <div class="col-5">
 
 <h4>Don't mimic UI elements from other platforms</h4>
 <p>Platforms typically provide a carefully designed set of UI elements that are themed in a very
@@ -28,7 +29,7 @@
 conventions of a different platform.</p>
 
   </div>
-  <div class="layout-content-col span-8">
+  <div class="col-8">
 
     <img src="{@docRoot}design/media/migrating_ui_elements.png">
     <div class="figure-caption">
@@ -40,8 +41,8 @@
 
 <div class="vspace size-2">&nbsp;</div>
 
-<div class="layout-content-row">
-  <div class="layout-content-col span-5">
+<div class="cols">
+  <div class="col-5">
 
 <h4>Don't carry over platform-specific icons</h4>
 <p>Platforms typically provide sets of icons for common functionality, such as sharing, creating a new
@@ -52,7 +53,7 @@
 <a href="{@docRoot}design/downloads/index.html">Downloads</a> page.</p>
 
   </div>
-  <div class="layout-content-col span-8">
+  <div class="col-8">
 
     <img src="{@docRoot}design/media/migrating_icons.png">
     <div class="figure-caption">
@@ -64,8 +65,8 @@
 
 <div class="vspace size-2">&nbsp;</div>
 
-<div class="layout-content-row">
-  <div class="layout-content-col span-5">
+<div class="cols">
+  <div class="col-5">
 
 <h4>Don't use bottom tab bars</h4>
 <p>Other platforms use the bottom tab bar to switch between the app's views. Per platform convention,
@@ -77,7 +78,7 @@
 <a href="{@docRoot}design/patterns/actionbar.html">Action Bars</a>.</p>
 
   </div>
-  <div class="layout-content-col span-8">
+  <div class="col-8">
 
     <img src="{@docRoot}design/media/migrating_ios_dialers.png">
     <div class="figure-caption">
@@ -87,8 +88,8 @@
   </div>
 </div>
 
-<div class="layout-content-row">
-  <div class="layout-content-col span-5">
+<div class="cols">
+  <div class="col-5">
 
 <h4>Don't hardcode links to other apps</h4>
 <p>In some cases you might want your app to take advantage of another app's feature set. For
@@ -101,7 +102,7 @@
 sharing target.</p>
 
   </div>
-  <div class="layout-content-col span-8">
+  <div class="col-8">
 
     <img src="{@docRoot}design/media/migrating_intents.png">
     <div class="figure-caption">
@@ -114,8 +115,8 @@
 
 <div class="vspace size-2">&nbsp;</div>
 
-<div class="layout-content-row">
-  <div class="layout-content-col span-5">
+<div class="cols">
+  <div class="col-5">
 
 <h4>Don't use labeled back buttons on action bars</h4>
 <p>Other platforms use an explicit back button with label to allow the user to navigate up the
@@ -125,7 +126,7 @@
 <p>Follow this guideline to provide a consistent navigation experience across the platform.</p>
 
   </div>
-  <div class="layout-content-col span-8">
+  <div class="col-8">
 
     <img src="{@docRoot}design/media/migrating_ios_galleries.png">
     <div class="figure-caption">
@@ -135,8 +136,8 @@
   </div>
 </div>
 
-<div class="layout-content-row">
-  <div class="layout-content-col span-5">
+<div class="cols">
+  <div class="col-5">
 
 <h4>Don't use right-pointing carets on line items</h4>
 <p>A common pattern on other platforms is the display of right-pointing carets on line items that allow
@@ -145,7 +146,7 @@
 the platform and in order to not have the user guess as to what the meaning of those carets may be.</p>
 
   </div>
-  <div class="layout-content-col span-8">
+  <div class="col-8">
 
     <img src="{@docRoot}design/media/migrating_ios_settings.png">
     <div class="figure-caption">
diff --git a/docs/html/design/patterns/selection.jd b/docs/html/design/patterns/selection.jd
deleted file mode 100644
index 7ed6dcc..0000000
--- a/docs/html/design/patterns/selection.jd
+++ /dev/null
@@ -1,123 +0,0 @@
-page.title=Selection
-page.tags=actionmode,navigation,contextual
-@jd:body
-
-<a class="notice-designers-material"
-  href="http://www.google.com/design/spec/patterns/selection.html">
-  <div>
-    <h3>Material Design</h3>
-    <p>Selection<p>
-  </div>
-</a>
-
-<a class="notice-developers" href="{@docRoot}guide/topics/ui/menus.html#context-menu">
-  <div>
-    <h3>Developer Docs</h3>
-    <p>Menus: Creating Contextual Menus</p>
-  </div>
-</a>
-
-
-<p>Android 3.0 changed the <em>long press</em> gesture&mdash;that is, a touch that's held in the same position for a moment&mdash;to be the global gesture to select data.. This affects the way you should
-handle multi-select and contextual actions in your apps.</p>
-
-<div class="vspace size-1">&nbsp;</div>
-
-<div class="layout-content-row">
-  <div class="layout-content-col span-6">
-
-<h4>What has changed?</h4>
-<p>In previous versions of Android, the long press gesture was universally used to display contextual
-actions for a given data item in a contextual menu.</p>
-<p>This pattern changed with Android 3.0. The long press gesture is now used to select data, combining
-contextual actions and selection management functions for selected data into a new element called
-the contextual action bar (CAB).</p>
-
-  </div>
-  <div class="layout-content-col span-7">
-
-    <img src="{@docRoot}design/media/selection_context_menu.png">
-    <div class="figure-caption">
-      Traditional use of the long press gesture to show contextual menus.
-    </div>
-
-  </div>
-</div>
-
-<h4>Using the contextual action bar</h4>
-<p itemprop="description">The contextual action bar (CAB) is a temporary action bar that overlays your app's current action bar while data
-is selected. It appears after the user long-presses on a selectable data item.</p>
-
-<img src="{@docRoot}design/media/selection_cab_big.png">
-
-<div class="vspace size-1">&nbsp;</div>
-
-<div class="layout-content-row">
-  <div class="layout-content-col span-6">
-
-<p>From here the user can:</p>
-<ul>
-<li>Select additional data items by touching them.</li>
-<li>Trigger an action from the CAB that applies to all highlighted data items. The CAB then
-  automatically dismisses itself.</li>
-<li>Dismiss the CAB via the navigation bar's Back button or the CAB's checkmark button. This removes
-  the CAB along with all selection highlights.</li>
-</ul>
-
-  </div>
-  <div class="layout-content-col span-7">
-
-    <img src="{@docRoot}design/media/selection_cab_example.png">
-
-  </div>
-</div>
-
-<div class="layout-content-row">
-  <div class="layout-content-col span-6">
-
-<h4>Selecting CAB actions</h4>
-<p>You can decide which actions and elements appear in the CAB. Use the guidelines in the <a href="actionbar.html">Action Bar
-pattern</a> to decide which items to surface at the top level and which to move to the
-action overflow.</p>
-<h4>Dynamically adjust CAB actions</h4>
-<p>In most cases you need to adjust the actions in the CAB dynamically as the user adds more items to
-the selection. Actions that apply to a single selected data item don't necessarily apply to multiple
-selected data items of the same kind.</p>
-
-  </div>
-  <div class="layout-content-col span-7">
-
-    <img src="{@docRoot}design/media/selection_adjusting_actions.png">
-    <div class="figure-caption">
-      Adjusting actions in the CAB as additional items are selected.
-    </div>
-
-  </div>
-</div>
-
-<div class="note develop">
-<p><strong>Developer Guide</strong></p>
-  <p>For information about how to create a contextual action bar, read
-  <a href="{@docRoot}guide/topics/ui/menus.html#CAB">Using the contextual action mode</a>.</p>
-</div>
-
-
-<h2 id="checklist">Checklist</h2>
-
-<ul>
-<li>
-<p>Whenever your app supports the selection of multiple data items, make use of the contextual action
-  bar (CAB).</p>
-</li>
-<li>
-<p>Reserve the long press gesture for selection exclusively. Don't use it to display traditional
-  contextual menus.</p>
-</li>
-<li>
-<p>If you don't support multi-selection within a list, long press should do nothing.</p>
-</li>
-<li>
-<p>Plan the actions you want to display inside of a CAB in the same way you would plan the actions
-  inside your app's action bar.</p>
-</li>
-</ul>
diff --git a/docs/html/design/patterns/settings.jd b/docs/html/design/patterns/settings.jd
deleted file mode 100644
index a24d6c0..0000000
--- a/docs/html/design/patterns/settings.jd
+++ /dev/null
@@ -1,708 +0,0 @@
-page.title=Settings
-page.tags=preferences,sharedpreferences
-@jd:body
-
-<a class="notice-designers-material"
-  href="http://www.google.com/design/spec/patterns/settings.html">
-  <div>
-    <h3>Material Design</h3>
-    <p>Settings<p>
-  </div>
-</a>
-
-<a class="notice-developers" href="{@docRoot}guide/topics/ui/settings.html">
-  <div>
-    <h3>Developer Docs</h3>
-    <p>Settings</p>
-  </div>
-</a>
-
-
-<p itemprop="description">Settings is a place in your app where users indicate their preferences for how your app should
-behave. This benefits users because:</p>
-
-<ul>
-<li>You don't need to interrupt them with the same questions over and over when certain situations
-arise. The settings predetermine what will always happen in those situations (see design
-principle: <a href="{@docRoot}design/get-started/principles.html#decide-for-me">Decide for me but
-let me have the final say</a>).</li>
-<li>You help them feel at home and in control (see design principle:
-<a href="{@docRoot}design/get-started/principles.html#make-it-mine">Let me make it mine</a>).</li>
-</ul>
-
-<h2 id="flow-structure">Flow and Structure</h2>
-
-<h4 id="settings-access">Provide access to Settings in the action overflow</h4>
-
-<p>Settings is given low prominence in the UI because it's not frequently needed. Even if there's
-room in the <a href="{@docRoot}design/patterns/actionbar.html">action bar</a>, never make Settings
-an action button. Always keep it in the action overflow and label it "Settings". Place it below
-all other items except "Help".</p>
-
-<img src="{@docRoot}design/media/settings_overflow.png">
-
-<div class="vspace size-2">&nbsp;</div>
-
-<h4 id="what-to-make-a-setting">Avoid the temptation to make everything a setting</h4>
-
-<p>Because Settings is a few navigational steps away, no matter how many items you have, they'll
-never clutter up the core part of your UI. This may seem like good news, but it also poses a
-challenge.</p>
-
-<p>Settings can be a tempting place to keep a lot of stuff&mdash;like a hall closet where things
-get stashed when you tidy up before company comes over. It's not a place where you spend lots of
-time, so it's easy to rationalize and ignore its cluttered condition. But when users visit
-Settings&mdash;however infrequently&mdash;they'll have the same expectations for the experience as
-they do everywhere else in your app. More settings means more choices to make, and too many are
-overwhelming.</p>
-
-<p>So don't punt on the difficult product decisions and debates that can bring on the urge to
-"just make it a setting". For each control you're considering adding to Settings, make sure it
-meets the bar:</p>
-
-<img src="{@docRoot}design/media/settings_flowchart.png">
-
-<div class="vspace size-3">&nbsp;</div>
-
-<div class="layout-content-row">
-  <div class="layout-content-col span-5 with-callouts">
-
-<h4 id="group-settings">If you still have lots of settings, group related settings together</h4>
-
-<p>The number of items an average human can hold in short-term memory is 7&plusmn;2. If you
-present a list of 10 or more settings (even after applying the criteria above), users will have
-more difficulty scanning, comprehending, and processing them.</p>
-
-<p>You can remedy this by dividing some or all of the settings into groups, effectively turning
-one long list into multiple shorter lists. A group of related settings can be presented in one of
-two ways:</p>
-
-<ol>
-<li><h4>Under a section divider</h4></li>
-<li><h4>In a separate subscreen</h4></li>
-</ol>
-
-<p>You can use one or both these grouping techniques to organize your app's settings.</p>
-
-<p>For example, in the main screen of the Android Settings app, each item in the list navigates
-to a subscreen of related settings. In addition, the items themselves are grouped under section
-dividers.</p>
-
-  </div>
-  <div class="layout-content-col span-8">
-
-    <img src="{@docRoot}design/media/settings_grouping.png">
-
-  </div>
-</div>
-
-<p>Grouping settings is not an exact science, but here's some advice for how to approach it, based
-on the total number of settings in your app.</p>
-
-<div class="vspace size-1">&nbsp;</div>
-
-<div class="layout-content-row">
-  <div class="layout-content-col span-2">
-
-<h4>7 or fewer</h4>
-
-  </div>
-  <div class="layout-content-col span-11">
-
-<p>Don't group them at all. It won't benefit users and will seem like overkill.</p>
-
-  </div>
-</div>
-
-<div class="layout-content-row">
-  <div class="layout-content-col span-2">
-
-<h4>8 to 10</h4>
-
-  </div>
-  <div class="layout-content-col span-11">
-
-<p>Try grouping related settings under 1 or 2 section dividers. If you have any "singletons"
-(settings that don't relate to any other settings and can't be grouped under your section
-dividers), treat them as follows:</p>
-
-<ul>
-<li>If they include some of your most important settings, list them at the top without a section
-divider.</li>
-<li>Otherwise, list them at the bottom with a section divider called "OTHER", in order of
-importance.</li>
-</ul>
-
-  </div>
-</div>
-
-<div class="layout-content-row">
-  <div class="layout-content-col span-2">
-
-<h4>11 to 15</h4>
-
-  </div>
-  <div class="layout-content-col span-11">
-
-<p>Same advice as above, but try 2 to 4 section dividers.</p>
-
-<p>Also, try the following to reduce the list:</p>
-
-<ul>
-<li>If 2 or more of the settings are mainly for power users, move them out of your main Settings
-screen and into an "Advanced" subscreen. Place an item in the action overflow called "Advanced" to
-navigate to it.</li>
-<li>Look for "doubles": two settings that relate to one another, but not to any other settings.
-Try to combine them into one setting, using the design patterns described later in this section.
-For example, you might be able to redesign two related checkbox settings into one multiple choice
-setting.</li>
-</ul>
-
-  </div>
-</div>
-
-<div class="layout-content-row">
-  <div class="layout-content-col span-2">
-
-<h4>16 or more</h4>
-
-  </div>
-  <div class="layout-content-col span-11">
-
-<p>If you have any instances of 4 or more related settings, group them under a subscreen. Then use
-the advice suggested above for the reduced list size.</p>
-
-  </div>
-</div>
-
-
-<h2 id="patterns">Design Patterns</h2>
-
-<div class="layout-content-row">
-  <div class="layout-content-col span-3">
-
-<h4>Checkbox</h4>
-<p>Use this pattern for a setting that is either selected or not selected.</p>
-
-  </div>
-  <div class="layout-content-col span-10">
-
-<img src="{@docRoot}design/media/settings_checkbox.png">
-
-  </div>
-</div>
-
-<div class="layout-content-row">
-  <div class="layout-content-col span-3">
-
-<h4>Multiple choice</h4>
-<p>Use this pattern for a setting that needs to present a discrete set of options, from which the
-user can choose only one.</p>
-
-  </div>
-  <div class="layout-content-col span-10">
-
-<img src="{@docRoot}design/media/settings_multiple_choice.png">
-
-  </div>
-</div>
-
-<div class="layout-content-row">
-  <div class="layout-content-col span-3">
-
-<h4>Slider</h4>
-<p>Use this pattern for a setting where the range of values are not discrete and fall along a
-continuum.</p>
-
-  </div>
-  <div class="layout-content-col span-10">
-
-<img src="{@docRoot}design/media/settings_slider.png">
-
-  </div>
-</div>
-
-<div class="layout-content-row">
-  <div class="layout-content-col span-3">
-
-<h4>Date/time</h4>
-<p>Use this pattern for a setting that needs to collect a date and/or time from the user.</p>
-
-  </div>
-  <div class="layout-content-col span-10">
-
-<img src="{@docRoot}design/media/settings_date_time.png">
-
-  </div>
-</div>
-
-<div class="layout-content-row">
-  <div class="layout-content-col span-3">
-
-<h4>Subscreen navigation</h4>
-<p>Use this pattern for navigating to a subscreen or sequence of subscreens that guide the user
-through a more complex setup process.</p>
-<ul>
-<li>If navigating to a single subscreen, use the same title in both the subscreen and the label
-navigating to it.</li>
-<li>If navigating to a sequence of subscreens (as in this example), use a title that describes the
-first step in the sequence.</li>
-</ul>
-
-  </div>
-  <div class="layout-content-col span-10">
-
-<img src="{@docRoot}design/media/settings_subscreen_navigation.png">
-
-  </div>
-</div>
-
-<div class="layout-content-row">
-  <div class="layout-content-col span-3">
-
-<h4>List subscreen</h4>
-<p>Use this pattern for a setting or category of settings that contains a list of equivalent items.
-</p>
-<p>The label provides the name of the item, and secondary text may be used for status. (In this
-example, status is reinforced with an icon to the right of the label.) Any actions associated with
-the list appear in the action bar rather than the list itself.</p>
-
-  </div>
-  <div class="layout-content-col span-10">
-
-<img src="{@docRoot}design/media/settings_list_subscreen.png">
-
-  </div>
-</div>
-
-<div class="layout-content-row">
-  <div class="layout-content-col span-3">
-
-<h4>Master on/off switch</h4>
-<p>Use this pattern for a category of settings that need a mechanism for turning on or off as a
-whole.</p>
-<p>An on/off switch is placed as the first item in the action bar of a subscreen. When the switch
-is turned off, the items in the list disappear, replaced by text that describes why the list is
-empty. If any actions require the switch to be on, they become disabled.</p>
-
-  </div>
-  <div class="layout-content-col span-10">
-
-<img src="{@docRoot}design/media/settings_master_on_off.png">
-
-  </div>
-</div>
-
-<div class="layout-content-row">
-  <div class="layout-content-col span-3">
-
-<div class="vspace size-2">&nbsp;</div>
-
-<p>You can also echo the master on/off switch in the menu item that leads to the subscreen.
-However, you should only do this in cases where users rarely need to access the subscreen once
-it's initially set up and more often just want to toggle the switch.</p>
-
-  </div>
-  <div class="layout-content-col span-10">
-
-<img src="{@docRoot}design/media/settings_master_on_off_2.png">
-
-  </div>
-</div>
-
-<div class="layout-content-row">
-  <div class="layout-content-col span-3">
-
-<h4>Individual on/off switch</h4>
-<p>Use this pattern for an individual setting that requires a more elaborate description than can
-be provided in checkbox form.</p>
-<p>The on/off switch only appears in the subscreen so that users aren't able to toggle it without
-also being exposed to the descriptive text. Secondary text appears below the setting label to
-reflect the current selection.</p>
-<p>In this example, Android Beam is on by default. Since users might not know what this setting
-does, we made the status more descriptive than just "On".</p>
-
-  </div>
-  <div class="layout-content-col span-10">
-
-<img src="{@docRoot}design/media/settings_individual_on_off.png">
-
-  </div>
-</div>
-
-<div class="layout-content-row">
-  <div class="layout-content-col span-3">
-
-<h4>Dependency</h4>
-<p>Use this pattern for a setting that changes availability based on the value of another setting.
-</p>
-<p>The disabled setting appears below its dependency, without any indentation. If the setting
-includes a status line, it says "Unavailable", and if the reason isn't obvious, a brief
-explanation is included in the status.</p>
-<p>If a given setting is a dependency to 3 or more settings, consider using a subscreen with a
-master on/off switch so that your main settings screen isn't cluttered by lots of disabled items.
-</p>
-
-  </div>
-  <div class="layout-content-col span-10">
-
-<img src="{@docRoot}design/media/settings_dependency.png">
-
-  </div>
-</div>
-
-<h2 id="defaults">Defaults</h2>
-
-<p>Take great care in choosing default values for each of your settings. Because settings
-determine app behavior, your choices will contribute to users' first impressions of your app. Even
-though users can change settings, they'll expect the initial states to be sensible. The following
-questions (when applicable) may help inform your decisions:</p>
-
-<ul>
-<li>Which choice would most users be likely to choose on their own if there were no default?</li>
-<li>Which choice is the most neutral or middle-of-the-road?</li>
-<li>Which choice is the least risky, controversial, or over-the-top?</li>
-<li>Which choice uses the least amount of battery or mobile data?</li>
-<li>Which choice best supports the design principle
-<a href="{@docRoot}design/get-started/principles.html#never-lose-my-stuff">Never lose my stuff</a>?</li>
-<li>Which choice best supports the design principle
-<a href="{@docRoot}design/get-started/principles.html#interrupt-only-if-important">Only interrupt
-me if it's important</a>?
-</li>
-</ul>
-
-<h2 id="writing">Writing Guidelines</h2>
-
-<h4>Label clearly and concisely</h4>
-
-<p>Writing a good label for a setting can be challenging because space is very limited. You only
-get one line, and it's incredibly short on the smallest of devices. Follow these guidelines to
-make your labels brief, meaningful, and scannable:</p>
-
-<ul>
-<li>Write each label in sentence case (i.e. only the first word and proper nouns are capitalized).
-</li>
-<li>Don't start a label with an instructional verb like "Set", "Change", "Edit", "Modify",
-"Manage", "Use", "Select", or "Choose". Users already understand that they can do these things to
-settings.</li>
-<li>Likewise, don't end a label with a word like "setting" or "settings". It's already implied.
-</li>
-<li>If the setting is part of a grouping, don't repeat the word(s) used in the section divider or
-subscreen title.</li>
-<li>Avoid starting a label with a negative word like "Don't" or "Never". For example, "Don't
-allow" could be rephrased to "Block".</li>
-<li>Steer clear of technical jargon as much as possible, unless it's a term widely understood by
-your target users. Use common verbs and nouns to convey the setting's purpose rather than its
-underlying technology.</li>
-<li>Don't refer to the user. For example, for a setting allowing the user to turn notifications on
-or off, label it "Notifications" instead of "Notify me".</li>
-</ul>
-
-<p>Once you've decided on labels for your settings, be sure to preview them on an
-<a href="{@docRoot}design/style/metrics-grids.html">LDPI handset</a> in portrait to make sure
-they'll fit everywhere.</p>
-
-<h4>Secondary text below is for status, not description&hellip;</h4>
-
-<p>Before Ice Cream Sandwich, we often displayed secondary text below a label to further describe
-it or provide instructions. Starting in Ice Cream Sandwich, we're using secondary text for status.
-</p>
-
-<div class="layout-content-row">
-  <div class="layout-content-col span-4">
-
-    <div class="do-dont-label bad emulate-content-left-padding">Before</div>
-
-    <table class="ui-table bad emulate-content-left-padding">
-    <thead>
-      <tr>
-        <th class="label">
-        Screen timeout
-        </th>
-      </tr>
-    </thead>
-    <tbody>
-      <tr>
-        <td class="secondary-text">
-        Adjust the delay before the screen automatically turns off
-        </td>
-      </tr>
-    </tbody>
-    </table>
-
-  </div>
-  <div class="layout-content-col span-4">
-
-    <div class="do-dont-label good">After</div>
-
-    <table class="ui-table good">
-    <thead>
-      <tr>
-        <th class="label">
-        Sleep
-        </th>
-      </tr>
-    </thead>
-    <tbody>
-      <tr>
-        <td class="secondary-text">
-        After 10 minutes of inactivity
-        </td>
-      </tr>
-    </tbody>
-    </table>
-
-  </div>
-</div>
-
-<p>Status in secondary text has the following benefits:</p>
-<ul>
-<li>Users can see at a glance what the current value of a setting is without having to navigate
-any further.</li>
-<li>It applies the design principle
-<a href="{@docRoot}design/get-started/principles.html#keep-it-brief">Keep it brief</a>, which
-users greatly appreciate.</li>
-</ul>
-
-<h4>&hellip;unless it's a checkbox setting</h4>
-<p>There's one important exception to the using secondary text for status: checkbox settings.
-Here, use secondary text for description, not status. Status below a checkbox is unnecessary
-because the checkbox already indicates it. The reason why it's appropriate to have a description
-below a checkbox setting is because&mdash;unlike other controls&mdash;it doesn't display a dialog
-or navigate to another screen where additional information can be provided.</p>
-
-<p>That said, if a checkbox setting's label is clear enough on its own, there's no need to also
-provide a description. Only include one if necessary.</p>
-
-<p>Follow these guidelines to write checkbox setting descriptions:</p>
-<ul>
-<li>Keep it to one sentence and don't use ending punctuation.</li>
-<li>Convey what happens when the setting is checked, phrased in the form of a command. Example:
-"Allow data exchange", not "Allows data exchange".</li>
-<li>Avoid repetition by choosing words that don't already appear in the label.</li>
-<li>Don't refer to the user unless it's necessary for understanding the setting.</li>
-<li>If you must refer to the user, do so in the second person ("you") rather than the first person
-("I"). Android speaks to users, not on behalf of them.</li>
-</ul>
-
-<h4>Writing examples</h4>
-
-<p>The following are examples of changes we made to labels and secondary text in the Settings app
-in Ice Cream Sandwich.</p>
-
-<div class="layout-content-row">
-  <div class="layout-content-col span-4">
-
-    <div class="do-dont-label bad emulate-content-left-padding">Before</div>
-
-    <table class="ui-table bad emulate-content-left-padding">
-    <thead>
-      <tr>
-        <th class="label">
-        Use tactile feedback
-        </th>
-      </tr>
-    </thead>
-    </table>
-
-  </div>
-  <div class="layout-content-col span-4">
-
-    <div class="do-dont-label good">After</div>
-
-    <table class="ui-table good">
-    <thead>
-      <tr>
-        <th class="label">
-        Vibrate on touch
-        </th>
-      </tr>
-    </thead>
-    </table>
-
-  </div>
-  <div class="layout-content-col span-5">
-
-<p>In this checkbox setting, we eliminated the throwaway word "Use" and rephrased the label to be
-more direct and understandable.</p>
-
-  </div>
-
-</div>
-
-<div class="layout-content-row">
-  <div class="layout-content-col span-4">
-
-    <div class="do-dont-label bad emulate-content-left-padding">Before</div>
-
-    <table class="ui-table bad emulate-content-left-padding">
-    <thead>
-      <tr>
-        <th class="label">
-        Screen timeout
-        </th>
-      </tr>
-    </thead>
-    <tbody>
-      <tr>
-        <td class="secondary-text">
-        Adjust the delay before the screen automatically turns off
-        </td>
-      </tr>
-    </tbody>
-    </table>
-
-  </div>
-  <div class="layout-content-col span-4">
-
-    <div class="do-dont-label good">After</div>
-
-    <table class="ui-table good">
-    <thead>
-      <tr>
-        <th class="label">
-        Sleep
-        </th>
-      </tr>
-    </thead>
-    <tbody>
-      <tr>
-        <td class="secondary-text">
-        After 10 minutes of inactivity
-        </td>
-      </tr>
-    </tbody>
-    </table>
-
-  </div>
-  <div class="layout-content-col span-5">
-
-<p>In this multiple choice setting, we changed the label to a friendlier term and also replaced
-the description with status. We put some descriptive words around the selected value, "10
-minutes", because on its own, the meaning could be misinterpreted as "sleep for 10 minutes".</p>
-
-  </div>
-</div>
-
-<div class="layout-content-row">
-  <div class="layout-content-col span-4">
-
-    <div class="do-dont-label bad emulate-content-left-padding">Before</div>
-
-    <table class="ui-table bad emulate-content-left-padding">
-    <thead>
-      <tr>
-        <th class="label">
-        Change screen lock
-        </th>
-      </tr>
-    </thead>
-    <tbody>
-      <tr>
-        <td class="secondary-text">
-        Change or disable pattern, PIN, or password security
-        </td>
-      </tr>
-    </tbody>
-    </table>
-
-  </div>
-  <div class="layout-content-col span-4">
-
-    <div class="do-dont-label good">After</div>
-
-    <table class="ui-table good">
-    <thead>
-      <tr>
-        <th class="label">
-        Screen lock
-        </th>
-      </tr>
-    </thead>
-    <tbody>
-      <tr>
-        <td class="secondary-text">
-        Pattern
-        </td>
-      </tr>
-    </tbody>
-    </table>
-
-  </div>
-  <div class="layout-content-col span-5">
-
-<p>This setting navigates to a a sequence of subscreens that allow users to choose a type of
-screen lock and then set it up. We eliminated the throwaway word "Change" in the label, and
-replaced the description with the current type of screen lock set up by the user. If the user
-hasn't set up a screen lock, the secondary text says "None".</p>
-
-  </div>
-</div>
-
-<div class="layout-content-row">
-  <div class="layout-content-col span-4">
-
-    <div class="do-dont-label bad emulate-content-left-padding">Before</div>
-
-    <table class="ui-table bad emulate-content-left-padding">
-    <thead>
-      <tr>
-        <th class="label">
-        NFC
-        </th>
-      </tr>
-    </thead>
-    <tbody>
-      <tr>
-        <td class="secondary-text">
-        Use Near Field Communication to read and exchange tags
-        </td>
-      </tr>
-    </tbody>
-    </table>
-
-  </div>
-  <div class="layout-content-col span-4">
-
-    <div class="do-dont-label good">After</div>
-
-    <table class="ui-table good">
-    <thead>
-      <tr>
-        <th class="label">
-        NFC
-        </th>
-      </tr>
-    </thead>
-    <tbody>
-      <tr>
-        <td class="secondary-text">
-        Allow data exchange when the phone touches another device
-        </td>
-      </tr>
-    </tbody>
-    </table>
-
-  </div>
-  <div class="layout-content-col span-5">
-
-<p>In this checkbox setting&mdash;although it's technical jargon&mdash;we kept the "NFC" label
-because: (1) we couldn't find a clear, concise alternative, and (2) user familiarity with the
-acronym is expected to increase dramatically in the next couple of years.</p>
-<p>We did, however, rewrite the description. It's far less technical than before and does a better
-job of conveying how and why you'd use NFC. We didn't include what the acronym stands for because
-it doesn't mean anything to most users and would have taken up a lot of space.</p>
-
-  </div>
-</div>
-
-
-
-<h2 id="checklist">Checklist</h2>
-<ul>
-<li><p>Make sure each item in Settings meets the criteria for belonging there.</p></li>
-<li><p>If you have more than 7 items, explore ways to group related settings.</p></li>
-<li><p>Use design patterns wherever applicable so users don't face a learning curve.</p></li>
-<li><p>Choose defaults that are safe, neutral, and fit the majority of users.</p></li>
-<li><p>Give each setting a clear, concise label and use secondary text appropriately.</p></li>
-</ul>
diff --git a/docs/html/design/patterns/swipe-views.jd b/docs/html/design/patterns/swipe-views.jd
index af5c9dc..9ee33db 100644
--- a/docs/html/design/patterns/swipe-views.jd
+++ b/docs/html/design/patterns/swipe-views.jd
@@ -42,8 +42,8 @@
 
 <h2 id="between-tabs">Swiping Between Tabs</h2>
 
-<div class="layout-content-row">
-  <div class="layout-content-col span-5">
+<div class="cols">
+  <div class="col-5">
 
     <div class="framed-nexus5-port-span-5">
       <video class="play-on-hover" autoplay>
@@ -58,7 +58,7 @@
     </div>
 
   </div>
-  <div class="layout-content-col span-8">
+  <div class="col-8">
     <p>If your app uses action bar tabs, use swipe to navigate between the different views.</p>
     <div class="vspace size-1">&nbsp;</div>
 
diff --git a/docs/html/design/patterns/widgets.jd b/docs/html/design/patterns/widgets.jd
index 47acc7b..b149af6 100644
--- a/docs/html/design/patterns/widgets.jd
+++ b/docs/html/design/patterns/widgets.jd
@@ -21,18 +21,18 @@
 
 <div class="vspace size-2">&nbsp;</div>
 
-<div class="layout-content-row">
-  <div class="layout-content-col span-6">
+<div class="cols">
+  <div class="col-6">
     <h3>Collection widgets</h3>
     <p>As the name implies, collection widgets specialize in displaying multitude elements of the same type, such as a collection of pictures from a gallery app, a collection of articles from a news app or a collection of emails/messages from a communication app. Collection widgets typically focus on two use cases: browsing the collection, and opening an element of the collection to its detail view for consumption. Collection widgets can scroll vertically.</p>
   </div>
-  <div class="layout-content-col span-3">
+  <div class="col-3">
     <img src="{@docRoot}design/media/widgets_collection_gmail.png">
     <div class="figure-caption">
       ListView widget
     </div>
   </div>
-  <div class="layout-content-col span-4">
+  <div class="col-4">
     <img src="{@docRoot}design/media/widgets_collection_bookmarks.png">
     <div class="figure-caption">
       GridView widget
@@ -84,8 +84,8 @@
   <li>Open application at top level: Tapping on an information element will usually navigate the user to a lower level detail screen. Providing access to the top level of your application provides more navigation flexibility and can replace a dedicated app shortcut that users would otherwise use to navigate to the app from the home screen. Using your application icon as an affordance can also provide your widget with a clear identity in case the data you're displaying is ambiguous.</li>
 </ul>
 
-<div class="layout-content-row">
-  <div class="layout-content-col span-6">
+<div class="cols">
+  <div class="col-6">
     <h3>Widget resizing</h3>
     <p>With version 3.1, Android introduced resizable widgets to the platform. Resizing allows users to adjust the height and/or the width of a widget within the constraints of the home panel placement grid. You can decide if your widget is freely resizable or if it is constrained to horizontal or vertical size changes. You do not have to support resizing if your particular widget is inherently fixed-size.</p>
     <p>Allowing users to resize widgets has important benefits:</p>
@@ -95,7 +95,7 @@
     </ul>
   </div>
 
-  <div class="layout-content-col span-7">
+  <div class="col-7">
     <img src="{@docRoot}design/media/widgets_resizing01.png">
     <div class="figure-caption">
       A long press and subsequent release sets resizable widgets into resize mode. Users can use the drag handles or the widget corners to set the desired size.
@@ -116,14 +116,14 @@
 </ul>
 
 <h3>Widget configuration</h3>
-<div class="layout-content-row">
-  <div class="layout-content-col span-6">
+<div class="cols">
+  <div class="col-6">
     <p>Sometimes widgets need to be setup before they can become useful. Think of an email widget for example, where you need to provide an account before the inbox can be displayed. Or a static photo widget where the user has to assign the picture that is to be displayed from the gallery.</p>
     <p>Android widgets display their configuration choices right after the widget is dropped onto a home panel. Keep the widget configuration light and don't present more than 2-3 configuration elements. Use dialog-style instead of full-screen activities to present configuration choices and retain the user's context of place, even if doing so requires use of multiple dialogs.</p>
 <p>Once setup, there typically is not a lot of reason to revisit the setup. Therefore Android widgets do not show a "Setup" or "Configuration" button.</p>
   </div>
 
-  <div class="layout-content-col span-6">
+  <div class="col-6">
     <img src="{@docRoot}design/media/widgets_config.png">
     <div class="figure-caption">
       After adding a Play widget to a home panel, the widget asks the user to specify the type of media the widget should display.
diff --git a/docs/html/design/style/branding.jd b/docs/html/design/style/branding.jd
deleted file mode 100644
index b5bb77c..0000000
--- a/docs/html/design/style/branding.jd
+++ /dev/null
@@ -1,128 +0,0 @@
-page.title=Your Branding
-page.tags=branding,logo
-@jd:body
-
-<p>Following Android design patterns doesn't mean that your app has to look the same as
-everyone else's. In Android, your app can shine as an extension of your brand. </p>
-
-<h2 id="color">Color</h2>
-
-<a class="notice-designers-material"
-  href="http://www.google.com/design/spec/style/color.html#color-ui-color-application">
-  <div>
-    <h3>Material Design</h3>
-    <p>UI Color Application<p>
-  </div>
-</a>
-
-<p>Use your brand color for accent by overriding the Android framework's default blue in UI elements like checkboxes, progress bars, radio buttons, sliders, tabs, and scroll indicators.</p>
-
-<p>Look for opportunities to use high-contrast color for emphasis, for example, as the background color of the action bar or a primary button. But don't go overboard: not all actions are equal, so use it only for the one or two most important things.</p>
-<p>When customizing colors, <a href="{@docRoot}design/style/touch-feedback.html">touch feedback</a>
-  should be subtle &mdash; just slightly lighter or darker than the untouched color.</p>
-
-<div class="vspace size-1">&nbsp;</div>
-
-<div class="layout-content-row">
-  <div class="layout-content-col span-6">
-    <img src="{@docRoot}design/media/branding_wallet.png" style="width:94%">
-    <div class="figure-caption">
-      The four colors of the Google Wallet logo provide a playful accent to the four dots
-      that appear as the user enters a PIN.
-    </div>
-  </div>
-  <div class="layout-content-col span-6">
-    <img src="{@docRoot}design/media/branding_googlemusic.png" style="width:94%">
-    <div class="figure-caption">
-      The Google Play Music app has an orange theme color, which is used for emphasis
-      in the action bar and for accent in the selected tab, scroll indicator, and
-      hyperlinks.
-    </div>
-  </div>
-</div>
-
-<h2 id="logo">Logo</h2>
-
-<p>Your app's <a href="{@docRoot}design/style/iconography.html#launcher">launcher icon</a> is
-  a key place to incorporate your logo, because it's what
-  users will look for and touch to begin using your app. You can carry the launcher
-  icon through to all the screens in your app by showing it in the
-  <a href="{@docRoot}design/patterns/actionbar.html">action bar</a> along
-  with the name of the app.</p>
-
-<p>Another approach to consider is to have your logo take the place of the launcher icon
-and app name in the action bar.</p>
-
-
-<div class="vspace size-1">&nbsp;</div>
-
-<div class="layout-content-row">
-  <div class="layout-content-col span-6" style="padding-top:24px;">
-        <img src="{@docRoot}design/media/branding_launcher_icon.png" style="width:60px;float:left;padding-right:1em;">
-    <div class="figure-caption" style="width:290px;margin-left:20px;">
-    Google+ reinforces its brand by carrying its launcher icon through to the action bar.
-    </div>
-        <img src="{@docRoot}design/media/branding_logo_icon_action_bar.png" style="width:320px;float:left;padding-right:1em;">
-  </div>
-  <div class="layout-content-col span-6">
-    <img src="{@docRoot}design/media/yourbranding_app.png" style="width:320px;">
-    <div class="figure-caption" style="width:320px;">
-      Example of a the logo in the action bar. This works well in cases where the brand's logo matches the name of the app.
-    </div>
-  </div>
-</div>
-
-<h2 id="logo">Icons</h2>
-
-<a class="notice-designers-material" href="http://www.google.com/design/spec/style/icons.html">
-  <div>
-    <h3>Material Design</h3>
-    <p>Icons<p>
-  </div>
-</a>
-
-<p>If you have icons that you're already using for your app on other platforms
-and they have a distinctive look intended to fit your brand, use them on your
-Android app as well. <strong>If you take this approach, make sure your brand styling is
-applied to every single icon in your app.</strong></p>
-
-
-<div class="layout-content-row">
-  <div class="layout-content-col span-6">
-    <p>One exception: For any icon in your existing set where the symbol is different from
-    Android's, use Android's symbol but give it your brand's styling. That way, users will
-    understand what the purpose of the icon is based on what they've learned in other
-    Android apps (Design principle:
-    <a href="{@docRoot}design/get-started/principles.html#give-me-tricks">Give me tricks that
-    work everywhere</a>). But the icon will still look like it belongs with all of
-    your other icons as a part of your brand.</p>
-
-  </div>
-
-  <div class="layout-content-col span-6">
-    <img src="{@docRoot}design/media/yourbranding_in-app-icons.png" style="width:300px;margin:12px 48px 0 16px;">
-    </div>
-  </div>
-</div>
-
-<div class="layout-content-row">
-  <div class="layout-content-col span-6">
-    <p><strong>Example</strong>:<br />
-    </p>
-    <p>The brand's normal icon for sharing on other platforms is a right arrow.
-  </div>
-
-  <div class="layout-content-col span-6 lasyout-with-list-item-margins">
-
-    <div style="margin-bottom:1em;">
-      <span class="do-dont-label bad" style="margin-left:12px">Don't</span>
-      <span style="margin-left: 64px;"  class="do-dont-label good"><strong>Do</strong></span>
-    </div>
-      <img src="{@docRoot}design/media/yourbranding_sharing.png" style="width:180px;">
-  </div>
-</div>
-
-<p>What if you don't already have your own icons &mdash; for example, if you're creating a
-brand new app only for Android? In this case, use Android's standard icons and rely
-more on color and logo for branding. Get the Action Bar Icon Pack, available for free
-in <a href="{@docRoot}design/downloads/index.html">Downloads</a>.</p>
diff --git a/docs/html/design/style/color.jd b/docs/html/design/style/color.jd
deleted file mode 100644
index 4c5f5ab..0000000
--- a/docs/html/design/style/color.jd
+++ /dev/null
@@ -1,141 +0,0 @@
-page.title=Color
-@jd:body
-
-<style>
-  .color-row {
-    width: 760px;
-    margin:0;
-
-    display: -webkit-box;
-    display:    -moz-box;
-    display:         box;
-
-    -webkit-box-orient: horizontal;
-       -moz-box-orient: horizontal;
-            box-orient: horizontal;
-
-    cursor: pointer;
-
-    -webkit-user-select: none;
-            user-select: none;
-    /* nested user-select in FF is broken as of Jan 2012, don't use it */
-  }
-
-  .color-row-container {
-    line-height: 0; /* to remove more top space in FF for -moz-box elements */
-  }
-
-  .color-row-container + .color-row-container {
-    margin-top: -10px !important;
-  }
-
-  .color-row li {
-    margin-left: 0 !important;
-    position: relative;
-    list-style-type: none;
-    height: 80px;
-    display: block;
-
-    -webkit-box-flex: 1;
-       -moz-box-flex: 1;
-            box-flex: 1;
-  }
-
-  .color-row li:before {
-    display: none;
-  }
-
-  .color-row li.thin {
-    height: 40px;
-  }
-
-  .color-row li span {
-    display: none;
-    position: absolute;
-    top: -30px;
-    left: 50%;
-    margin-left: -2.5em;
-    width: 5em;
-    background-color: #fff;
-    padding: 10px;
-    font-weight: 600;
-    line-height: 20px;
-    text-align: center;
-    box-shadow: 0 5px 5px rgba(0,0,0,0.1);
-    cursor: text;
-
-    -webkit-user-select: text;
-            user-select: text;
-    /* nested user-select in FF is broken as of Jan 2012, don't use it */
-  }
-
-  .color-row li:hover span {
-    display: block;
-  }
-
-  /* triangle callout */
-  .color-row li span:after {
-    content: '';
-    display: block;
-    position: absolute;
-    left: 50%;
-    bottom: -16px;
-    border: 8px solid transparent;
-    border-top-color: #fff;
-    width: 0;
-    height: 0;
-    margin-left: -8px;
-  }
-</style>
-
-<a class="notice-designers-material" href="http://www.google.com/design/spec/style/color.html">
-  <div>
-    <h3>Material Design</h3>
-    <p>Color<p>
-  </div>
-</a>
-
-<p>Use color primarily for emphasis. Choose colors that fit with your brand and provide good contrast
-between visual components. Note that red and green may be indistinguishable to color-blind users.</p>
-
-    <div class="color-row-container">
-      <ul class="color-row">
-        <li><span>#33b5e5</span></li>
-        <li><span>#aa66cc</span></li>
-        <li><span>#99cc00</span></li>
-        <li><span>#ffbb33</span></li>
-        <li><span>#ff4444</span></li>
-      </ul>
-    </div>
-
-    <div class="color-row-container">
-      <ul class="color-row">
-        <li class="thin"><span>#0099cc</span></li>
-        <li class="thin"><span>#9933cc</span></li>
-        <li class="thin"><span>#669900</span></li>
-        <li class="thin"><span>#ff8800</span></li>
-        <li class="thin"><span>#cc0000</span></li>
-      </ul>
-    </div>
-
-<h2 id="palette">Palette</h2>
-
-<p>Blue is the standard accent color in Android's color palette. Each color has a corresponding darker
-shade that can be used as a complement when needed.</p>
-<p><a onClick="ga('send', 'event', 'Design', 'Download', 'Color Swatches (@color page)');"
-      href="{@docRoot}downloads/design/Android_Design_Color_Swatches_20120229.zip">Download the swatches</a></p>
-
-<img src="{@docRoot}design/media/color_spectrum.png">
-
-<script>
-  $(document).ready(function() {
-    $('.color-row li').each(function() {
-      var color = $(this).text();
-      $(this).css('background-color', color);
-      $(this).find('span')
-          .css('color', color)
-          .text(color.toUpperCase());
-    });
-
-  });
-</script>
diff --git a/docs/html/design/style/devices-displays.jd b/docs/html/design/style/devices-displays.jd
index 1590363..caa77da 100644
--- a/docs/html/design/style/devices-displays.jd
+++ b/docs/html/design/style/devices-displays.jd
@@ -19,15 +19,15 @@
 
 <div class="vspace size-2">&nbsp;</div>
 
-<div class="layout-content-row">
-  <div class="layout-content-col span-4">
+<div class="cols">
+  <div class="col-4">
 
 <h4>Be flexible</h4>
 
 <p>Stretch and compress your layouts to accommodate various heights and widths.</p>
 
   </div>
-  <div class="layout-content-col span-5">
+  <div class="col-5">
 
 <h4>Optimize layouts</h4>
 
@@ -35,7 +35,7 @@
 multiple views to reveal more content and ease navigation.</p>
 
   </div>
-  <div class="layout-content-col span-4">
+  <div class="col-4">
 
 <h4>Assets for all</h4>
 <p>Provide resources for different screen densities (<acronym title="Dots per inch">DPI</acronym>) to
diff --git a/docs/html/design/style/iconography.jd b/docs/html/design/style/iconography.jd
deleted file mode 100644
index e2cdf3f..0000000
--- a/docs/html/design/style/iconography.jd
+++ /dev/null
@@ -1,601 +0,0 @@
-page.title=Iconography
-page.tags="icons"
-meta.tags="icons, googleplay, listing, branding"
-page.titleFriendly=Guidelines for creating your app's icons
-@jd:body
-
-<img src="{@docRoot}design/media/iconography_overview.png">
-
-
-<p>An icon is a graphic that takes up a small portion of screen real estate and provides a quick,
-intuitive representation of an action, a status, or an app.</p>
-
-<p>When you design icons for your app, it's important to keep in mind that your
-app may be installed on a variety of devices that offer a range of
-pixel densities, as mentioned in
-<a href="{@docRoot}design/style/devices-displays.html">Devices
-and Displays</a>. But you can make your icons look great on all devices
-by providing each icon in multiple sizes. When your app runs, Android checks the characteristics of
-the device screen and loads the appropriate density-specific assets for your app. </p>
-
-<p>Because you will deliver each icon in multiple sizes to support different densities,
-the design guidelines below
-refer to the icon dimensions in <acronym title="density-independent pixels">dp</acronym>
-units, which are based on the pixel dimensions of a medium-density (MDPI) screen.</p>
-
-<img src="{@docRoot}design/media/devices_displays_density@2x.png" alt="" height="160" />
-
-<p>So, to create an icon for different densities, you should follow the <strong>2:3:4:6:8
-scaling ratio</strong> between the five primary densities (medium, high, x-high, xx-high, and
-xxx-high respectively). For example, consider that the size for a launcher icon is specified to be
-48x48 dp. This means the baseline (MDPI) asset is 48x48 px, and the
-high-density(HDPI) asset should be 1.5x the baseline at 72x72 px, and the x-high
-density (XHDPI) asset should be 2x the baseline at 96x96 px, and so on.</p>
-
-<p class="note"><strong>Note:</strong> Android also supports low-density (LDPI) screens,
-but you normally don't need to create custom assets at this size because Android
-effectively down-scales your HDPI assets by 1/2 to match the expected size.</p>
-
-
-
-
-<h2 id="launcher">Launcher</h2>
-
-<a class="notice-designers-material"
-  href="http://www.google.com/design/spec/style/icons.html#icons-product-icons">
-  <div>
-    <h3>Material Design</h3>
-    <p>Product Icons<p>
-  </div>
-</a>
-
-<p>The launcher icon is the visual representation of your app on the Home or All Apps screen. Since the
-user can change the Home screen's wallpaper, make sure that your launcher icon is clearly visible on
-any type of background.</p>
-
-<div class="layout-content-row">
-  <div class="layout-content-col span-4">
-
-    <img src="{@docRoot}design/media/iconography_launcher_size.png">
-
-  </div>
-  <div class="layout-content-col span-4">
-
-    <img src="{@docRoot}design/media/iconography_launcher_focal.png">
-
-  </div>
-  <div class="layout-content-col span-4">
-
-    <img src="{@docRoot}design/media/iconography_launcher_style.png">
-
-  </div>
-</div>
-
-<div class="layout-content-row">
-  <div class="layout-content-col span-4">
-
-    <h4>Sizes &amp; scale</h4>
-
-    <ul>
-      <li class="no-bullet with-icon tablet">
-        <p>Launcher icons on a mobile device must be <strong>48x48 <acronym title="Density-independent pixels. One dp is one pixel on a 160 dpi screen.">dp</acronym></strong>.</p></li>
-      <li class="no-bullet with-icon web">
-        <p>Launcher icons for display on Google Play must be <strong>512x512 pixels</strong>.</p></li>
-    </ul>
-
-  </div>
-  <div class="layout-content-col span-4">
-
-    <h4>Proportions</h4>
-
-    <ul>
-      <li class="no-bullet with-icon tablet">
-        <p>Full asset, <strong>48x48 dp</strong></p>
-      </li>
-    </ul>
-
-  </div>
-  <div class="layout-content-col span-4">
-
-<h4>Style</h4>
-<p>Use a distinct silhouette. Three-dimensional, front view, with a slight perspective as if viewed
-from above, so that users perceive some depth.</p>
-
-  </div>
-</div>
-
-
-<div class="layout-content-row">
-  <div class="layout-content-col span-4">
-    &nbsp;
-  </div>
-  <div class="layout-content-col span-7">
-
-    <img src="{@docRoot}design/media/iconography_launcher_example.png">
-
-  </div>
-  <!-- 2 free columns -->
-</div>
-
-<div class="layout-content-row">
-  <div class="layout-content-col span-12">
-
-    <img src="{@docRoot}design/media/iconography_launcher_example2.png">
-
-    <div class="vspace size-2">&nbsp;</div>
-
-  </div>
-  <!-- 1 free columns -->
-</div>
-
-
-<h2 id="action-bar">Action Bar</h2>
-
-<a class="notice-designers-material"
-  href="http://www.google.com/design/spec/style/icons.html#icons-system-icons">
-  <div>
-    <h3>Material Design</h3>
-    <p>System Icons<p>
-  </div>
-</a>
-
-<p>
-
-Action bar icons are graphic buttons that represent the most important actions people can take
-within your app. Each one should employ a simple metaphor representing a single concept that most
-people can grasp at a glance.
-
-</p>
-<p>
-
-Pre-defined glyphs should be used for certain common actions such as "refresh" and "share." The
-download link below provides a package with icons that are scaled for various screen densities and
-are suitable for use with the Holo Light and Holo Dark themes. The package also includes unstyled
-icons that you can modify to match your theme, in addition to Adobe&reg; Illustrator&reg; source
-files for further customization.
-
-</p>
-<p>
-<a onClick="ga('send', 'event', 'Design', 'Download', 'Action Bar Icons (@iconography page)');"
-   href="{@docRoot}downloads/design/Android_Design_Icons_20131106.zip">Download the Action Bar Icon Pack</a>
-</p>
-
-<div class="layout-content-row">
-  <div class="layout-content-col span-4">
-
-    <img src="{@docRoot}design/media/iconography_actionbar_size.png">
-
-  </div>
-  <div class="layout-content-col span-4">
-
-    <img src="{@docRoot}design/media/iconography_actionbar_focal.png">
-
-  </div>
-  <div class="layout-content-col span-4">
-
-    <img src="{@docRoot}design/media/iconography_actionbar_style.png">
-
-  </div>
-</div>
-
-<div class="layout-content-row">
-  <div class="layout-content-col span-4">
-
-    <h4>Sizes &amp; scale</h4>
-
-    <ul>
-      <li class="no-bullet with-icon tablet">
-        <p>Action bar icons for phones should be <strong>32x32 <acronym title="Density-independent pixels. One dp is one pixel on a 160 dpi screen.">dp</acronym></strong>.</p></li>
-    </ul>
-
-  </div>
-  <div class="layout-content-col span-4">
-
-    <h4>Focal area &amp; proportions</h4>
-
-    <ul>
-      <li class="no-bullet with-icon tablet">
-        <p>Full asset, <strong>32x32 dp</strong></p>
-        <p>Optical square, <strong>24x24 dp</strong></p>
-      </li>
-    </ul>
-
-  </div>
-  <div class="layout-content-col span-4">
-
-<h4>Style</h4>
-<p>Pictographic, flat, not too detailed, with smooth curves or sharp shapes. If the graphic is thin,
-rotate it 45&deg; left or right to fill the focal space. The thickness of the strokes and negative
-spaces should be a minimum of 2 dp.</p>
-
-  </div>
-</div>
-
-
-<div class="layout-content-row">
-  <div class="layout-content-col span-3">
-
-<h4>Colors</h4>
-<p>Colors: <strong>#333333</strong><br />
-Enabled: <strong>60%</strong> opacity<br />
-Disabled: <strong>30%</strong> opacity</p>
-<div class="vspace size-1">&nbsp;</div>
-
-<p>Colors: <strong>#FFFFFF</strong><br />
-Enabled: <strong>80%</strong> opacity<br />
-Disabled: <strong>30%</strong> opacity</p>
-
-  </div>
-  <div class="layout-content-col span-9">
-
-    <img src="{@docRoot}design/media/iconography_actionbar_colors.png">
-
-  </div>
-</div>
-
-
-<h2 id="small-contextual">Small / Contextual Icons</h2>
-
-<a class="notice-designers-material"
-  href="http://www.google.com/design/spec/style/icons.html#icons-system-icons">
-  <div>
-    <h3>Material Design</h3>
-    <p>System Icons<p>
-  </div>
-</a>
-
-<p>Within the body of your app, use small icons to surface actions and/or provide status for specific
-items. For example, in the Gmail app, each message has a star icon that marks the message as
-important.</p>
-
-
-<div class="layout-content-row">
-  <div class="layout-content-col span-4">
-
-    <img src="{@docRoot}design/media/iconography_small_size.png">
-
-  </div>
-  <div class="layout-content-col span-4">
-
-    <img src="{@docRoot}design/media/iconography_small_focal.png">
-
-  </div>
-  <div class="layout-content-col span-4">
-
-    <img src="{@docRoot}design/media/iconography_small_style.png">
-
-  </div>
-</div>
-
-<div class="layout-content-row">
-  <div class="layout-content-col span-4">
-
-    <h4>Sizes &amp; scale</h4>
-
-    <ul>
-      <li class="no-bullet with-icon tablet">
-        <p>Small icons should be <strong>16x16 <acronym title="Density-independent pixels. One dp is one pixel on a 160 dpi screen.">dp</acronym></strong>.</p></li>
-    </ul>
-
-  </div>
-  <div class="layout-content-col span-4">
-
-    <h4>Focal area &amp; proportions</h4>
-
-    <ul>
-      <li class="no-bullet with-icon tablet">
-        <p>Full asset, <strong>16x16 dp</strong></p>
-        <p>Optical square, <strong>12x12 dp</strong></p>
-      </li>
-    </ul>
-
-  </div>
-  <div class="layout-content-col span-4">
-
-<h4>Style</h4>
-<p>Neutral, flat, and simple. Filled shapes are easier to see than thin strokes. Use a single visual
-metaphor so that a user can easily recognize and understand its purpose.</p>
-
-  </div>
-</div>
-
-
-<div class="layout-content-row">
-  <div class="layout-content-col span-4">
-
-    <img src="{@docRoot}design/media/iconography_small_colors.png">
-
-    <div class="vspace size-2">&nbsp;</div>
-
-<h4>Colors</h4>
-<p>Use non-neutral colors sparingly and with purpose. For example, Gmail uses yellow in the star icon
-to indicate a bookmarked message. If an icon is actionable, choose a color that contrasts well with
-the background.</p>
-
-  </div>
-  <div class="layout-content-col span-7">
-
-    <img src="{@docRoot}design/media/iconography_small_example.png">
-
-  </div>
-  <!-- 2 free columns -->
-</div>
-
-
-<h2 id="notification">Notification Icons</h2>
-
-<a class="notice-designers-material"
-  href="http://www.google.com/design/spec/style/icons.html#icons-system-icons">
-  <div>
-    <h3>Material Design</h3>
-    <p>System Icons<p>
-  </div>
-</a>
-
-
-<p>If your app generates notifications, provide an icon that the system can display in the status bar
-whenever a new notification is available.</p>
-
-
-<div class="layout-content-row">
-  <div class="layout-content-col span-4">
-
-    <img src="{@docRoot}design/media/iconography_notification_size.png">
-
-  </div>
-  <div class="layout-content-col span-4">
-
-    <img src="{@docRoot}design/media/iconography_notification_focal.png">
-
-  </div>
-  <div class="layout-content-col span-4">
-
-    <img src="{@docRoot}design/media/iconography_notification_style.png">
-
-  </div>
-</div>
-
-<div class="layout-content-row">
-  <div class="layout-content-col span-4">
-
-    <h4>Sizes &amp; scale</h4>
-
-    <ul>
-      <li class="no-bullet with-icon tablet">
-        <p>Notification icons must be <strong>24x24 <acronym title="Density-independent pixels. One dp is one pixel on a 160 dpi screen.">dp</acronym></strong>.</p></li>
-    </ul>
-
-  </div>
-  <div class="layout-content-col span-4">
-
-    <h4>Focal area &amp; proportions</h4>
-
-    <ul>
-      <li class="no-bullet with-icon tablet">
-        <p>Full asset, <strong>24x24 dp</strong></p>
-        <p>Optical square, <strong>22x22 dp</strong></p>
-      </li>
-    </ul>
-
-  </div>
-  <div class="layout-content-col span-4">
-
-<h4>Style</h4>
-<p>Keep the style flat and simple, using the same single, visual metaphor as your launcher icon.</p>
-
-  </div>
-</div>
-
-
-<div class="layout-content-row">
-  <div class="layout-content-col span-4">
-
-<h4>Colors</h4>
-<p>Notification icons must be entirely white. Also, the system may scale down and/or darken the icons.</p>
-
-  </div>
-  <div class="layout-content-col span-7">
-
-    <img src="{@docRoot}design/media/iconography_notification_example.png">
-
-  </div>
-  <!-- 2 free columns -->
-</div>
-
-
-
-
-
-
-
-
-
-
-<h2 id="DesignTips">Design Tips</h2>
-
-<p>Here are some tips you might find useful as you create icons or other
-drawable assets for your application. These tips assume you are using
-Adobe&reg; Photoshop&reg; or a similar raster and vector image-editing program.</p>
-
-
-
-
-<h3>Use vector shapes where possible</h3>
-
-<p>Many image-editing programs such as Adobe&reg; Photoshop&reg; allow you to use a
-combination of vector shapes and raster layers and effects. When possible,
-use vector shapes so that if the need arises, assets can be scaled up without
-loss of detail and edge crispness.</p>
-
-<p>Using vectors also makes it easy to align edges and corners to pixel
-boundaries at smaller resolutions.</li>
-
-
-
-<h3>Start with large artboards</h3>
-
-<p>Because you will need to create assets for different screen densities,
-it is best to start your icon
-designs on large artboards with dimensions that are multiples of the target icon
-sizes. For example, launcher icons are 48, 72, 96, or 144 pixels wide,
-depending on screen density (mdpi, hdpi, xhdpi, and xxhdpi, respectively). If you
-initially draw launcher icons on an 864x864 artboard, it will be easier and
-cleaner to adjust the icons when you scale the artboard down to the target
-sizes for final asset creation.</p>
-
-
-
-<h3>When scaling, redraw bitmap layers as needed</h3>
-
-<p>If you scaled an image up from a bitmap layer, rather than from a vector
-layer, those layers will need to be redrawn manually to appear crisp at higher
-densities. For example if a 60x60 circle was painted as a bitmap for
-mdpi it will need to be repainted as a 90x90 circle for hdpi.</p>
-
-
-
-<h3>Use common naming conventions for icon assets</h3>
-
-<p>Try to name files so that related assets will group together inside a
-directory when they are sorted alphabetically. In particular, it helps to use a
-common prefix for each icon type. For example:</p>
-
-<table>
-<tr>
-<th>Asset Type</th>
-<th>Prefix</th>
-<th>Example</th>
-</tr>
-<tr>
-<td>Icons</td>
-<td><code>ic_</code></td>
-<td><code>ic_star.png</code></td>
-</tr>
-<tr>
-<td>Launcher icons</td>
-<td><code>ic_launcher</code></td>
-<td><code>ic_launcher_calendar.png</code></td>
-</tr>
-<tr>
-<td>Menu icons and Action Bar icons</td>
-<td><code>ic_menu</code></td>
-<td><code>ic_menu_archive.png</code></td>
-</tr>
-<tr>
-<td>Status bar icons</td>
-<td><code>ic_stat_notify</code></td>
-<td><code>ic_stat_notify_msg.png</code></td>
-</tr>
-<tr>
-<td>Tab icons</td>
-<td><code>ic_tab</code></td>
-<td><code>ic_tab_recent.png</code></td>
-</tr>
-<tr>
-<td>Dialog icons</td>
-<td><code>ic_dialog</code></td>
-<td><code>ic_dialog_info.png</code></td>
-</tr>
-</table>
-
-<p>Note that you are not required to use a shared prefix of any
-type&mdash;doing so is for your convenience only.</p>
-
-
-<h3>Set up a working space that organizes files by density</h3>
-
-<p>Supporting multiple screen densities means you must create multiple versions
-of the same icon. To help keep the multiple copies of files safe and easier to
-find, we recommend creating a directory structure in your working space that
-organizes asset files based on the target density. For example:</p>
-
-<pre>
-art/...
-    mdpi/...
-        _pre_production/...
-            <em>working_file</em>.psd
-        <em>finished_asset</em>.png
-    hdpi/...
-        _pre_production/...
-            <em>working_file</em>.psd
-        <em>finished_asset</em>.png
-    xhdpi/...
-        _pre_production/...
-            <em>working_file</em>.psd
-        <em>finished_asset</em>.png
-    xxhdpi/...
-        _pre_production/...
-            <em>working_file</em>.psd
-        <em>finished_asset</em>.png
-</pre>
-
-<p>Because the structure in your working space is similar to that of the application, you
-can quickly determine which assets should be copied to each
-resources directory. Separating assets by density also helps you detect any
-variances in filenames across densities, which is important because
-corresponding assets for different densities must share the same filename.</p>
-
-<p>For comparison, here's the resources directory structure of a typical
-application: </p>
-
-<pre>res/...
-    drawable-ldpi/...
-        <em>finished_asset</em>.png
-    drawable-mdpi/...
-        <em>finished_asset</em>.png
-    drawable-hdpi/...
-        <em>finished_asset</em>.png
-    drawable-xhdpi/...
-        <em>finished_asset</em>.png
-    drawable-xxhdpi/...
-        <em>finished_asset</em>.png
-
-    mipmap-ldpi/...
-        <em>finished_launcher_asset</em>.png
-    mipmap-mdpi/...
-        <em>finished_launcher_asset</em>.png
-    mipmap-hdpi/...
-        <em>finished_launcher_asset</em>.png
-    mipmap-xhdpi/...
-        <em>finished_launcher_asset</em>.png
-    mipmap-xxhdpi/...
-        <em>finished_launcher_asset</em>.png
-    mipmap-xxxhdpi/...
-        <em>finished_launcher_asset</em>.png
-</pre>
-
-<p>For more information about how to save resources in the application project,
-see <a href="{@docRoot}guide/topics/resources/providing-resources.html">Providing Resources</a>.
-</p>
-
-<p> For more information about using the mipmap folders, see
-<a href="{@docRoot}tools/projects/index.html#mipmap">Managing Projects Overview</a>.</p>
-
-<h3 id="xxxhdpi-launcher">Provide an xxx-high-density launcher icon</h3>
-
-<p>Some devices scale-up the launcher icon by as much as 25%. For example, if your highest density
-launcher icon image is already extra-extra-high density, the scaling process will make it appear
-less crisp. So you should provide a higher density launcher icon in the <code>mipmap-xxxhdpi
-</code> directory, which the system uses instead of scaling up a smaller version of the icon.</p>
-
-<p class="note"><strong>Note:</strong> The <code>mipmap-xxxhdpi</code> qualifier is necessary
-only to provide a launcher icon that can appear larger than usual on an xxhdpi device. It is best
-practice to place all your launcher icons in the <code>res/mipmap-[density]/</code> folders. This
-enables your app to display launcher icons that have a higher density than the device, without
-scaling up a lower density version of the icon. You do not need to provide xxxhdpi assets for all
-your app's images.</p>
-
-<p>See <a href="{@docRoot}guide/practices/screens_support.html">Supporting Multiple Screens</a> for
-more information.</p>
-
-
-<h3>Remove unnecessary metadata from final assets</h3>
-
-<p>Although the Android SDK tools will automatically compress PNGs when packaging
-application resources into the application binary, a good practice is to remove
-unnecessary headers and metadata from your PNG assets. Tools such as <a
-href="http://optipng.sourceforge.net/">OptiPNG</a> or <a
-href="http://pmt.sourceforge.net/pngcrush/">Pngcrush</a> can ensure that this
-metadata is removed and that your image asset file sizes are optimized.</p>
-
-
diff --git a/docs/html/design/style/metrics-grids.jd b/docs/html/design/style/metrics-grids.jd
deleted file mode 100644
index d7b5f78..0000000
--- a/docs/html/design/style/metrics-grids.jd
+++ /dev/null
@@ -1,90 +0,0 @@
-page.title=Metrics and Grids
-page.metaDescription=Optimize your app's UI by designing layouts based on density-independent grids.
-page.tags="layout","screens"
-meta.tags="multiple screens, layout, tablets"
-page.image=/design/media/metrics_closeup.png
-@jd:body
-
-
-<a class="notice-designers-material"
-  href="http://www.google.com/design/spec/layout/metrics-keylines.html">
-  <div>
-    <h3>Material Design</h3>
-    <p>Metrics and Keylines<p>
-  </div>
-</a>
-
-
-<p>Devices vary not only in physical size, but also in screen density (<acronym title="Dots per
-inch">DPI</acronym>). To simplify the way you design for multiple screens, think of each device as
-falling into a particular size bucket and density bucket:</p>
-<ul>
- <li>The size buckets are <em>handset</em> (smaller than
-600<acronym title="Density-independent pixels: One dp is one pixel on a 160 dpi (mdpi)
-screen.">dp</acronym>) and <em>tablet</em> (larger than or equal 600dp).</li>
- <li>The density buckets are <acronym
-title="Low density (120 dpi)">LDPI</acronym>, <acronym title="Medium density (160
-dpi)">MDPI</acronym>, <acronym title="High density (240 dpi)">HDPI</acronym>, <acronym title
-="Extra-high density (320 dpi)">XHDPI</acronym>, <acronym title
-="Extra-extra!-high density (480 dpi)">XXHDPI</acronym>, and <acronym title
-="Extra-extra-extra!-high density (640 dpi)">XXXHDPI</acronym>.</li>
-</ul>
-
-<p>Optimize your application's UI by designing
-alternative layouts for some of the different size buckets, and provide alternative bitmap images
-for different density buckets.</p>
-
-<p>Because it's important that you design and implement your layouts for multiple densities,
-the guidelines below and throught the documentation
-refer to layout dimensions with <acronym title="Density-independent pixels: One dp is one pixel
-on a 160 dpi (mdpi) screen.">dp</acronym> measurements instead of pixels.</p>
-
-
-<div class="layout-content-row">
-  <div class="layout-content-col span-8">
-
-    <img src="{@docRoot}design/media/metrics_diagram.png">
-
-  </div>
-  <div class="layout-content-col span-5">
-
-<h4>Space considerations</h4>
-<p>Devices vary in the amount of density-independent pixels (dp) they can display.</p>
-<p>To see more, visit the
-<a href="http://developer.android.com/resources/dashboard/screens.html" target="_blank">
-Screen Sizes and Densities Device Dashboard</a>.</p>
-
-  </div>
-</div>
-
-
-<h2 id="48dp-rhythm">48dp Rhythm</h2>
-
-<p>Touchable UI components are generally laid out along 48dp units.</p>
-
-<img src="{@docRoot}design/media/metrics_48.png">
-
-<div class="vspace size-2">&nbsp;</div>
-
-<h4>Why 48dp?</h4>
-<p>On average, 48dp translate to a physical size of about 9mm (with some variability). This is
-comfortably in the range of recommended target sizes (7-10 mm) for touchscreen objects and users
-will be able to reliably and accurately target them with their fingers.</p>
-<p>If you design your elements to be at least 48dp high and wide you can guarantee that:</p>
-<ul>
-<li>your targets will never be smaller than the minimum recommended target size of 7mm regardless of
-  what screen they are displayed on.</li>
-<li>you strike a good compromise between overall information density on the one hand, and
-  targetability of UI elements on the other.</li>
-</ul>
-
-<img src="{@docRoot}design/media/metrics_closeup.png">
-
-<div class="vspace size-2">&nbsp;</div>
-
-<h4>Mind the gaps</h4>
-<p>Spacing between each UI element is 8dp.</p>
-
-<h2 id="examples">Examples</h2>
-
-<img src="{@docRoot}design/media/metrics_forms.png">
diff --git a/docs/html/design/style/themes.jd b/docs/html/design/style/themes.jd
deleted file mode 100644
index 3313a2b..0000000
--- a/docs/html/design/style/themes.jd
+++ /dev/null
@@ -1,53 +0,0 @@
-page.title=Themes
-@jd:body
-
-<div class="layout-content-row">
-  <div class="layout-content-col span-5">
-
-    <img src="{@docRoot}design/media/themes_holo_light.png">
-    <div class="figure-caption">
-      Gmail in Holo Light.
-    </div>
-
-    <img src="{@docRoot}design/media/themes_holo_dark.png">
-    <div class="figure-caption">
-      Settings in Holo Dark.
-    </div>
-
-  </div>
-  <div class="layout-content-col span-7">
-
-
-<a class="notice-designers-material"
-  href="http://www.google.com/design/spec/style/color.html#color-themes">
-  <div>
-    <h3>Material Design</h3>
-    <p>Color Themes<p>
-  </div>
-</a>
-
-
-<p>Themes are Android's mechanism for applying a consistent style to an app or activity.
-The style specifies the visual properties of the elements that make up your user interface,
-such as color, height, padding and font size. To promote greater cohesion between all apps
-on the platform, Android provides two system themes that you can choose from when building apps:</p>
-<ul>
-<li>Holo Light</li>
-<li>Holo Dark</li>
-</ul>
-<p>Applying these themes will go a long way in helping you to build apps that fit right into the
-general visual language of Android.</p>
-<p>Pick the system theme that best matches the needs and design aesthetics for your app. If your
-desire is to have a more distinct look for your app, using one of the system themes as a starting
-point for your customizations is a good idea. The system themes provide a solid foundation on top
-of which you can selectively implement your own visual stylings.</p>
-
-<div class="note develop">
-<p><strong>Developer Guide</strong></p>
-  <p>For information about how to apply themes such as Holo Light and Dark, and
-  how to build your own themes, see the
-  <a href="{@docRoot}guide/topics/ui/themes.html">Styles and Themes</a> API guide.</p>
-</div>
-
-  </div>
-</div>
diff --git a/docs/html/design/style/touch-feedback.jd b/docs/html/design/style/touch-feedback.jd
deleted file mode 100644
index b6d64079..0000000
--- a/docs/html/design/style/touch-feedback.jd
+++ /dev/null
@@ -1,95 +0,0 @@
-page.title=Touch Feedback
-page.tags=input,button
-@jd:body
-
-<div class="layout-content-row" style="margin-bottom: -100px">
-<div class="layout-content-col span-7">
-
-<a class="notice-designers-material"
-  href="http://www.google.com/design/spec/animation/responsive-interaction.html">
-  <div>
-    <h3>Material Design</h3>
-    <p>Responsive Interaction<p>
-  </div>
-</a>
-
-
-<p>Use illumination and dimming to respond to touches, reinforce the resulting behaviors
-of gestures, and indicate what actions are enabled and disabled.</p>
-
-<p><strong>Be responsive to touches in a gentle way</strong>. Whenever a user touches an
-actionable area in your app, let them know the app is "listening" by providing a visual
-response. Make it subtle &mdash;just slightly lighter or darker than the untouched color. This
-provides two benefits:</p>
-
-<ul>
-<li><a href="{@docRoot}design/get-started/principles.html#sprinkle-encouragement">Sprinkles
-of encouragement</a> are more pleasant than jolts.</li>
-<li>Incorporating <a href="{@docRoot}design/style/branding.html">your branding</a> is much
-easier because the default touch feedback works with whatever hue you choose.</li>
-</ul>
-
-</div>
-
-<div class="layout-content-col span-6" style="float:right;">
-  <video  class="play-on-hover" width="268" height="442" autoplay style="border:1px solid #ddd;background-color:#f9f9f9;" poster="">
-    <source src="{@docRoot}design/media/touch_feedback.mp4" type="video/mp4">
-    <source src="{@docRoot}design/media/touch_feedback.webm" type="video/webm">
-    <source src="{@docRoot}design/media/touch_feedback.ogv" type="video/ogg">
-  </video>
-  <div class="figure-caption">
-    <div style="color:#a3a3a3;margin-left:130px;"><em>Click image to replay...</em></div>
-  </div>
-</div>
-
-<h4 style="clear:both;">States</h4>
-
-
-<div class="vspace size-1">&nbsp;</div>
-
-<img src="{@docRoot}design/media/touch_feedback_states.png">
-<div class="figure-caption">
-  Most of Android's UI elements have touch feedback built in, including
-  states that indicate whether touching the element will have any effect.
-</div>
-
-<div class="vspace size-3">&nbsp;</div>
-
-<div class="layout-content-row">
-  <div class="layout-content-col span-6">
-
-    <h4>Communication</h4>
-<p>When your objects react to more complex gestures, help users
-understand what the outcome will be.</p>
-
-<p>In Recents, when a user starts swiping a thumbnail left or right, it
-begins to dim. This helps the user understand that swiping will cause the
-item to be removed.</p>
-  </div>
-  <div class="layout-content-col span-7">
-
-    <img src="{@docRoot}design/media/touch_feedback_manipulation.png">
-
-  </div>
-</div>
-<div class="vspace size-3">&nbsp;</div>
-
-<div class="layout-content-row">
-  <div class="layout-content-col span-6">
-
-    <img src="{@docRoot}design/media/touch_feedback_communication.png">
-    <p><em>If a user attempts to scroll past the last home screen panel, the screen
-    content tilts to the right to indicate that further navigation in this direction
-    isn’t possible.</em></p>
-
-  </div>
-  <div class="layout-content-col span-6">
-
-<h4>Boundaries</h4>
-<p>
-  When users try to scroll past the beginning or end of a scrollable area,
-  communicate the boundary with a visual cue. Many of Android's scrollable UI
-  widgets, like lists and grid lists, have support for boundary feedback built
-  in. If you’re building custom widgets, keep boundary feedback in mind and
-  provide it from within your app.
-</p>
diff --git a/docs/html/design/style/typography.jd b/docs/html/design/style/typography.jd
deleted file mode 100644
index 2f8e91b..0000000
--- a/docs/html/design/style/typography.jd
+++ /dev/null
@@ -1,78 +0,0 @@
-page.title=Typography
-page.tags="textview","font"
-page.metaDescription=How to use typography in your Android apps.
-@jd:body
-
-<div class="layout-content-row">
-  <div class="layout-content-col span-8">
-
-    <img src="{@docRoot}design/media/typography_main.png">
-
-  </div>
-
-<a class="notice-designers-material"
-  style="width: 278px;"
-  href="http://www.google.com/design/spec/style/typography.html">
-  <div>
-    <h3>Material Design</h3>
-    <p>Typography<p>
-  </div>
-</a>
-
-<div class="layout-content-col span-5">
-
-<p>
-  <a class="download-button"  onClick="ga('send', 'event', 'Design', 'Download', 'Roboto ZIP');"
-    href="{@docRoot}downloads/design/roboto-1.2.zip">Download Roboto</a>
-</p>
-
-<p>The Android design language relies on traditional typographic tools such as scale, space, rhythm,
-and alignment with an underlying grid. Successful deployment of these tools is essential to help
-users quickly understand a screen of information. To support such use of typography, Ice Cream
-Sandwich introduced a new type family named
-<a href="http://www.google.com/fonts/specimen/Roboto" class="external-link">Roboto</a>, created
-specifically for the requirements of UI and high-resolution screens.</p>
-
-<p>The current {@link android.widget.TextView} framework offers Roboto in thin, light, regular and bold
-weights, along with an italic style for each weight. The framework also offers the
-<a href="http://www.google.com/fonts/specimen/Roboto+Condensed" class="external-link">Roboto Condensed</a>
-variant in regular and bold weights, along with an italic style for each weight.</p>
-
-    <img src="{@docRoot}design/media/typography_variants@2x.png" width="220">
-
-<p><a onClick="ga('send', 'event', 'Design', 'Download', 'Roboto Specimen Book (@typography page)');"
-      href="{@docRoot}downloads/design/Roboto_Specimen_Book_20131031.pdf">Specimen Book</a></p>
-
-  </div>
-</div>
-
-<hr>
-
-<div class="layout-content-row">
-  <div class="layout-content-col span-6">
-
-<h4>Default type colors</h4>
-<p>The Android UI uses the following default color styles: <code>textColorPrimary</code> and
-<code>textColorSecondary</code>. For light themes use <code>textColorPrimaryInverse</code> and
-<code>textColorSecondaryInverse</code>. The framework text color styles also support variants for
-touch feedback states when used inside UI elements.</p>
-
-    <img src="{@docRoot}design/media/typography_defaults.png">
-
-  </div>
-  <div class="layout-content-col span-6">
-
-<h4>Typographic Scale</h4>
-<p>Contrast in type sizes can go a long way to create ordered, understandable layouts. However, too
-many different sizes in the same UI can be messy. The Android framework uses the following limited
-set of type sizes:</p>
-
-<img src="{@docRoot}design/media/typography_sizes.png">
-
-<p>Users can select a system-wide scaling factor for text in the Settings app. In order to support
-these accessibility features, type should be specified in scale-independent pixels
-(<acronym title="Scale-independent pixels. One sp is one pixel on a 160 dpi screen if the user's global text scale is set to 100%.">sp</acronym>)
-wherever possible. Layouts supporting scalable types should be tested against these settings.</p>
-
-  </div>
-</div>
diff --git a/docs/html/design/style/writing.jd b/docs/html/design/style/writing.jd
deleted file mode 100644
index 4f62253..0000000
--- a/docs/html/design/style/writing.jd
+++ /dev/null
@@ -1,322 +0,0 @@
-page.title=Writing Style
-page.tags=dialog,toast,notification
-@jd:body
-
-<h2 id="voa">Android's Voice</h2>
-
-<p>When writing text that appears in your app, keep it concise, simple, and friendly.</p>
-
-<h4 id="concise">Concise</h4>
-
-<ul>
-  <li>Describe only what the user needs to know.</li>
-  <li>Eliminate redundancy, such as titles that restate the body of an information box.</li>
-  <li>Keep text as short as possible.</li>
-</ul>
-
-<p><em>Avoid wordy, stilted text</em></p>
-
-<div class="layout-content-row">
-  <div class="layout-content-col span-6 layout-with-list-item-margins">
-
-    <div class="do-dont-label bad">Don't</div>
-
-    <table class="ui-table good"><tbody><tr><td>
-    Consult the documentation that came with your phone for further instructions.
-    </td></tr></tbody></table>
-
-  </div>
-  <div class="layout-content-col span-6">
-
-    <div class="do-dont-label good">Do</div>
-
-    <table class="ui-table good"><tbody><tr><td>
-    Read the instructions that came with your phone.
-    </td></tr></tbody></table>
-
-  </div>
-</div>
-
-<p><em>Don't provide unnecessary information</em></p>
-
-<div class="layout-content-row">
-  <div class="layout-content-col span-6 layout-with-list-item-margins">
-
-    <div class="do-dont-label bad">From a Setup Wizard screen</div>
-
-    <table class="ui-table bad">
-    <thead>
-      <tr>
-        <th>
-        Signing in...
-        </th>
-      </tr>
-    </thead>
-    <tbody>
-      <tr>
-        <td>
-        Your phone needs to communicate with<br>
-        Google servers to sign in to your account.<br>
-        This may take up to five minutes.
-        </td>
-      </tr>
-    </tbody>
-    </table>
-
-  </div>
-  <div class="layout-content-col span-6">
-
-    <div class="do-dont-label good">From a Setup Wizard screen</div>
-
-    <table class="ui-table good">
-    <thead>
-      <tr>
-        <th>
-        Signing in...
-        </th>
-      </tr>
-    </thead>
-    <tbody>
-      <tr>
-        <td>
-        Your phone is contacting Google.<br>
-        This can take up to 5 minutes.
-        </td>
-      </tr>
-    </tbody>
-    </table>
-
-  </div>
-</div>
-
-<h4 id="simple">Simple</h4>
-
-<ul>
-  <li>Use short words, active verbs, and common nouns.</li>
-  <li>Put the most important thing first. “Front-load” the first 11 characters
-      with the most salient information in the string.</li>
-  <li>Don’t try to explain subtle differences. They are lost on most users.</li>
-</ul>
-
-<p><em>Focus on the user's concern, not technical details</em></p>
-
-<div class="layout-content-row">
-  <div class="layout-content-col span-6 layout-with-list-item-margins">
-
-    <div class="do-dont-label bad">Don't</div>
-
-    <table class="ui-table good"><tbody><tr><td>
-    Manually control GPS to prevent other apps from using it
-    </td></tr></tbody></table>
-
-  </div>
-  <div class="layout-content-col span-6">
-
-    <div class="do-dont-label good">Do</div>
-
-    <table class="ui-table good"><tbody><tr><td>
-    To save power, switch Location mode to Battery saving
-    </td></tr></tbody></table>
-
-  </div>
-</div>
-
-<p><em>Put top news first</em></p>
-
-<div class="layout-content-row">
-  <div class="layout-content-col span-6 layout-with-list-item-margins">
-
-    <div class="do-dont-label bad">Don't</div>
-
-    <table class="ui-table good"><tbody><tr><td>
-    77 other people +1’d this, including Larry Page
-    </td></tr></tbody></table>
-
-  </div>
-  <div class="layout-content-col span-6">
-
-    <div class="do-dont-label good">Do</div>
-
-    <table class="ui-table good"><tbody><tr><td>
-    Larry Page and 76 others +1’d this
-    </td></tr></tbody></table>
-
-  </div>
-</div>
-
-<p><em>Put the user's goal first</em></p>
-
-<div class="layout-content-row">
-  <div class="layout-content-col span-6 layout-with-list-item-margins">
-
-    <div class="do-dont-label bad">Don't</div>
-
-    <table class="ui-table good"><tbody><tr><td>
-    Touch Next to complete setup using a Wi-Fi connection
-    </td></tr></tbody></table>
-
-  </div>
-  <div class="layout-content-col span-6">
-
-    <div class="do-dont-label good">Do</div>
-
-    <table class="ui-table good"><tbody><tr><td>
-    To finish setup using Wi-Fi, touch Next
-    </td></tr></tbody></table>
-
-  </div>
-</div>
-
-
-<h4 id="friendly">Friendly</h4>
-
-<ul>
-  <li>Use contractions.</li>
-  <li>Talk directly to the reader. Use “you”  to refer to the reader.</li>
-  <li>Keep your tone casual and conversational, but avoid slang.</li>
-</li>
-</ul>
-
-<p><em>Avoid being confusing or annoying</em></p>
-<div class="layout-content-row">
-  <div class="layout-content-col span-6 layout-with-list-item-margins">
-    <div class="do-dont-label bad">Don't</div>
-    <table class="ui-table bad">
-    <thead>
-      <tr>
-        <th>
-        Sorry!
-        </th>
-      </tr>
-    </thead>
-    <tbody>
-      <tr>
-        <td>
-        Activity MyAppActivity (in application<br />
-        MyApp) is not responding
-        </td>
-      </tr>
-    </tbody>
-    </table>
-
-  </div>
-  <div class="layout-content-col span-6">
-    <div class="do-dont-label good">Do</div>
-    <table class="ui-table good">
-    <thead>
-      <tr>
-        <th>
-        MyApp isn’t responding 
-        </th>
-      </tr>
-    </thead>
-    <tbody>
-      <tr>
-        <td>
-        Do you want to close it?
-        </td>
-      </tr>
-    </tbody>
-    </table>
-  </div>
-</div>
-
-
-<h4>Words to avoid</h4>
-
-<div style="padding:5px 2.1em;">
-<table>
-  <tr>
-    <td class="do-dont-label bad" style="width:40%">Don't use</td>
-    <td class="do-dont-label good" style="width:40%">Use</td>
-  </tr>
-  <tr>
-    <td>one, two, three, four, ...</td>
-    <td>1, 2, 3, 4, ...</td>
-  </tr>
-  <tr>
-    <td>application</td>
-    <td>app</td>
-  </tr>
-  <tr>
-    <td>cannot, could not, do not, did not 
-will not, you will</td>
-    <td><em>Contractions:</em> can’t, couldn’t, don’t, didn’t won’t, you’ll, and so on</td>
-  </tr>
-    <tr>
-    <td>okay, ok</td>
-    <td>OK</td>
-  </tr>
-  <tr>
-    <td>please, sorry, thank you</td>
-    <td><em>Attempts at politeness can annoy the user, especially in messages that say
-        something has gone wrong.<br />
-        Exception: In Japanese, “please” is mandatory and imperative verbs should
-        be localized accordingly (turn on -> please turn on).
-        </em></td>
-  </tr>
-    <tr>
-    <td>there is, there are, it is<br />
-        <em>and other “disappeared” subjects (grammatical expletives)</em></td>
-    <td><em>Use a noun as the subject</em></td>
-  </tr>
-  <tr>
-    <td>abort, kill, terminate</td>
-    <td>stop, cancel, end, exit</td>
-  </tr>
-    <tr>
-    <td>fail, failed, <em>negative language</em></td>
-    <td><em>In general, use positive phrasing<br />
-        (for example, “do” rather than “don’t,” except in cases such as “Don’t show
-        again,” “Can’t connect,” and so on.)</em></td>
-  </tr>
-  <tr>
-    <td>me, I, my, mine</td>
-    <td>you, your, yours</td>
-  </tr>
-    <tr>
-    <td>Are you sure? Warning!</td>
-    <td><em>Tell user the consequence instead, for example, “You’ll lose all photos 
-        and media”</em></td>
-  </tr>
-</table>
-
-</div>
-
-<h2 id="formatting_text">Formatting text</h2>
-
-<h4 id="capitalization">Capitalization</h4>
-
-<ul>
-  <li>Use sentence-style capitalization for all UI strings: “Words to live by.”</li>
-  <li>Capitalize all important words in: 
-    <ul>
-      <li>App names (Calendar, Google Drive)</li>
-      <li>Named features (Android Beam, Face Unlock)</li>
-      <li>Proper nouns (Statue of Liberty, San Francisco Giants)</li>
-    </ul>
-  </li>
-  <li>Be conservative. Don't capitalize words that aren't part of a formal feature name: 
-    <ul>
-      <li>Sim card lock, Home screen, not Sim Card Lock, Home Screen.</li>
-    </ul>
-  </li>
-</ul>
-
-
-<h4 id="punctuation">Punctuation</h4>
-<ul>
-  <li><strong>Period.</strong> Don't use a period after a single sentence or
-  phrase used in isolation, such as in a toast, label, or notification. Wherever two or
-  more sentences run together, use a period for each sentence. </li>
-  <li><strong>Ellipsis.</strong> Use the ellipsis character (…) (Option-; on MacOS and &amp;hellip;
-    in HTML) to indicate 
-    <ul>
-      <li>Incompleteness, such as an action in progress (“Downloading...”) or truncated text.</li>
-      <li>That a menu item (such as Print… or Share…) leads to further UI involving significant
-        choices. Exception: Commands whose wording already implies further (but limited) UI, such
-        as <strong>Find in page</strong> or <strong>Pick a date</strong>, do not require an
-        ellipsis. </li>
-    </ul>
-  </li>
-</ul>
diff --git a/docs/html/design/tv/patterns.jd b/docs/html/design/tv/patterns.jd
index e786ee5..ccec285 100644
--- a/docs/html/design/tv/patterns.jd
+++ b/docs/html/design/tv/patterns.jd
@@ -43,8 +43,8 @@
 </a>. For a visual overview of recommendations, see <a href="design/tv/index.html#recommendations">
 Design for Android TV</a>.</p>
 
-<div class="layout-content-row">
-  <div class="layout-content-col span-8 with-callouts">
+<div class="cols">
+  <div class="col-8 with-callouts">
 
   <p>The design elements of the recommendation card are as follows:</p>
   <ol>
@@ -61,7 +61,7 @@
   Recommendations</a> for more information.</p>
 
   </div>
-  <div class="layout-content-col span-5">
+  <div class="col-5">
 
     <img src="{@docRoot}images/tv/recommend-card.png">
 
diff --git a/docs/html/design/videos/index.jd b/docs/html/design/videos/index.jd
deleted file mode 100644
index 976767d..0000000
--- a/docs/html/design/videos/index.jd
+++ /dev/null
@@ -1,130 +0,0 @@
-page.title=Videos
-@jd:body
-
-<p>The Android Design Team presents design-oriented sessions at Google I/O every year. Visit these pages to view the videos and presentations from the conferences.</p>
-
-<img src="{@docRoot}images/home/io-logo-2013-alt.png">
-
-<div class="vspace size-2">&nbsp;</div>
-
-<div class="layout-content-row">
-  <div class="layout-content-col span-7">
-    <h3 id="design-for-success"><a href="https://developers.google.com/events/io/2013/sessions/326368573">Enchant, Simplify, Amaze: Android's Design Principles</a></h3>
-    <p>Want to enchant people, simplify their lives, and make them feel amazing with your app? Learn how Android's Design Principles can help you create products that resonate with people. Find out about the meaning and research behind the principles. See real-world examples and practices from the Android Design team. Discover techniques for applying the principles in your daily work. No design experience necessary.</p>
-  </div>
-  <div class="layout-content-col span-6">
-    <iframe width="355" height="200" src="//www.youtube.com/embed/s0HIP8EdlnE" frameborder="0" allowfullscreen=""></iframe>
-  </div>
-</div>
-
-<div class="vspace size-2">&nbsp;</div>
-
-<div class="layout-content-row">
-  <div class="layout-content-col span-7">
-    <h3 id="design-for-success"><a href="https://developers.google.com/events/io/2013/sessions/326301704">Structure in Android App Design</a></h3>
-    <p>Life is simple when your app is simple. But when your apps gets more complex, how do you choose between spinners, tabs, and drawers for navigation? Members of the Android Design team look at techniques for making your app predictable and pleasing to use.</p>
-  </div>
-  <div class="layout-content-col span-6">
-    <iframe width="355" height="200" src="//www.youtube.com/embed/XpqyiBR0lJ4" frameborder="0" allowfullscreen=""></iframe>
-  </div>
-</div>
-
-<div class="vspace size-2">&nbsp;</div>
-
-<div class="layout-content-row">
-  <div class="layout-content-col span-7">
-    <h3 id="design-for-success"><a href="https://developers.google.com/events/io/2013/sessions/326425499">Fireside Chat with the Android Team</a></h3>
-    <p>Pull up a chair and join the Android platform team for a fireside chat. It's your opportunity to ask us about the platform and learn a little bit more about why things work the way they do, from the people who built it. </p>
-  </div>
-  <div class="layout-content-col span-6">
-    <iframe width="355" height="200" src="//www.youtube.com/embed/A5OOJDIrYls" frameborder="0" allowfullscreen=""></iframe>
-  </div>
-</div>
-
-<div class="vspace size-2">&nbsp;</div>
-
-<div class="layout-content-row">
-  <div class="layout-content-col span-7">
-    <h3 id="design-for-success"><a href="https://developers.google.com/events/io/2013/sessions/326483138">Agile UX Research Practice in Android</a></h3>
-    <p>In the Android UX team, it is critical to get user feedback frequently and consistently so that we are able to iterate and develop the best-in-class designs for our users. We will discuss how the team applied "Pulse Studies" (iterative research sessions) in order to put new ideas, designs, and concepts in front of users on a regular basis; it requires minimal advance planning, it can have an immediate product impact, and it can meet urgent needs. </p>
-  </div>
-  <div class="layout-content-col span-6">
-    <iframe width="355" height="200" src="//www.youtube.com/embed/6MOeVNbh9cY" frameborder="0" allowfullscreen=""></iframe>
-  </div>
-</div>
-
-<div class="vspace size-2">&nbsp;</div>
-
-<div class="layout-content-row">
-  <div class="layout-content-col span-7">
-    <h3 id="design-for-success"><a href="https://developers.google.com/events/io/2013/sessions/326460111">Cognitive Science and Design</a></h3>
-    <p>This session will provide an in-depth look at human perception and cognition, and its implications for interactive and visual design. The human brain is purely treated as an information processing machine, and we will teach the audience its attributes, its advantages, its limitations, and generally how to hack it. </p>
-  </div>
-  <div class="layout-content-col span-6">
-    <iframe width="355" height="200" src="//www.youtube.com/embed/z2exxj4COhU" frameborder="0" allowfullscreen=""></iframe>
-  </div>
-</div>
-
-<img src="{@docRoot}design/media/extras_googleio_12.png">
-
-<div class="vspace size-2">&nbsp;</div>
-
-<div class="layout-content-row">
-  <div class="layout-content-col span-7">
-    <h3 id="design-for-success"><a href="https://developers.google.com/events/io/sessions/gooio2012/112/">Android Design for Success</a></h3>
-    <p>You have a great idea for an Android app. You want it to stand out among hundreds of thousands. You want your users to love it and tell everyone they know. The Android User Experience team is here to help. We talk about the Android Design guide and other tricks of the trade for creating apps that delight users and help them accomplish their goals. No design background is required.</p>
-  </div>
-  <div class="layout-content-col span-6">
-    <iframe width="355" height="200" src="//www.youtube.com/embed/2NL_83EG0no" frameborder="0" allowfullscreen=""></iframe>
-  </div>
-</div>
-
-<div class="vspace size-2">&nbsp;</div>
-
-<div class="layout-content-row">
-  <div class="layout-content-col span-7">
-    <h3 id="design-for-engineers"><a href="https://developers.google.com/events/io/sessions/gooio2012/1204/">Android Design for Engineers</a></h3>
-    <p>Design isn't black magic, it's a field that people can learn. In this talk two elite designers from Google give you an advanced crash course in interactive and visual design. Topics include mental models, natural mappings, metaphors, mode errors, visual hierarchies, typography and gestalt principles. Correctly applied, this knowledge can drastically improve the quality of your work.</p>
-  </div>
-  <div class="layout-content-col span-6">
-    <iframe width="355" height="200" src="//www.youtube.com/embed/iJDoxOTyMdk" frameborder="0" allowfullscreen=""></iframe>
-  </div>
-</div>
-
-<div class="vspace size-2">&nbsp;</div>
-
-<div class="layout-content-row">
-  <div class="layout-content-col span-7">
-    <h3 id="navigation-in-android"><a href="https://developers.google.com/events/io/sessions/gooio2012/114/">Navigation in Android</a></h3>
-    <p>An app is useless if people can't find their way around it. Android introduced big navigation-support changes in 3.0 and 4.0. The Action Bar offers a convenient control for Up navigation, the Back key's behavior became more consistent within tasks, and the Recent Tasks UI got an overhaul. In this talk, we discuss how and why we got where we are today, how to think about navigation when designing your app's user experience, and how to write apps that offer effortless navigation in multiple Android versions.</p>
-  </div>
-  <div class="layout-content-col span-6">
-    <iframe width="355" height="200" src="//www.youtube.com/embed/XwGHJJYBs0Q" frameborder="0" allowfullscreen=""></iframe>
-  </div>
-</div>
-
-<div class="vspace size-2">&nbsp;</div>
-
-<div class="layout-content-row">
-  <div class="layout-content-col span-7">
-    <h3 id="now-what"><a href="https://developers.google.com/events/io/sessions/gooio2012/115/">So You've Read the Design Guide&#59; Now What?</a></h3>
-    <p>The Android Design Guide describes how to design beautiful Android apps, but not how to build them. In this talk we give practical tips for how to apply fit &amp; finish as you implement your design, we show you how to avoid some common pitfalls, we describe some useful patterns, and show how tools can help.</p>
-  </div>
-  <div class="layout-content-col span-6">
-    <iframe width="355" height="200" src="//www.youtube.com/embed/2jCVmfCse1E" frameborder="0" allowfullscreen=""></iframe>
-  </div>
-</div>
-
-<div class="vspace size-2">&nbsp;</div>
-
-<div class="layout-content-row">
-  <div class="layout-content-col span-7">
-    <h3 id="playing-with-patterns"><a href="https://developers.google.com/events/io/sessions/gooio2012/131/">Playing with Patterns</a></h3>
-    <p>Best-in-class application designers and developers talk about their experience in developing for Android, showing screenshots from their app, exploring the challenges they faced, and offering creative solutions congruent with the Android Design guide. Guests are invited to show examples of visual and interaction patterns in their application that manage to keep it simultaneously consistent and personal.</p>
-  </div>
-  <div class="layout-content-col span-6">
-    <iframe width="355" height="200" src="//www.youtube.com/embed/8iUbr8RZKtg" frameborder="0" allowfullscreen=""></iframe>
-  </div>
-</div>
-
-<p>Videos for the entire Design Track can also be found on the <a href="http://www.youtube.com/playlist?list=PL54FA004D676C3EE9">Android Developers Channel</a> on YouTube.</p>
diff --git a/docs/html/design/wear/creative-vision.jd b/docs/html/design/wear/creative-vision.jd
index a879cf9..0955240 100644
--- a/docs/html/design/wear/creative-vision.jd
+++ b/docs/html/design/wear/creative-vision.jd
@@ -2,17 +2,19 @@
 @jd:body
 
 <style>
-div.span-13 {
-  margin:10px 0;
+.page-vision  {
+  float: left;
+  margin: 10px 0;
+  width: 100%;
 }
-div.span-13 img {
+.page-vision img {
   float:left;
   margin:2px 20px 40px 0;
 }
-div.span-13 p {
+.page-vision p {
   margin-left:167px;
 }
-div.span-13 h2 {
+.page-vision h2 {
   margin-top:0;
   }
 </style>
@@ -22,28 +24,28 @@
 Wear experiences are:</p>
 
 
-  <div class="layout-content-col span-13">
+  <div class="page-vision">
     <img src="{@docRoot}design/media/wear/vision_traffic.png" width="147" height="147" />
 
     <h2 id="Launched">Launched automatically</h2>
     <p>Most people are used to launching apps by clicking an icon. Android Wear is different. Wearable apps are aware of the user’s context - time, location, physical activity, and so on. The apps use this information to insert cards into the stream when they become relevant. This makes Android Wear timely, relevant and very specific.</p>
   </div>
 
-  <div class="layout-content-col span-13">
+  <div class="page-vision">
     <img src="{@docRoot}design/media/wear/vision_navigation.png" width="147" height="147" />
 
     <h2 id="Glanceable">Glanceable</h2>
     <p>A classic wrist watch is designed to let you see the time in a split second and get on with what you were doing. Designing for Android Wear is no different. The less time it takes to use your software, the more time the user can be present in whatever they are doing. Android wear is fast, sharp, and immediate.</p>
   </div>
 
-  <div class="layout-content-col span-13">
+  <div class="page-vision">
     <img src="{@docRoot}design/media/wear/vision_voice.png" width="147" height="147" style="border: 1px solid #ddd;" />
 
     <h2 id="SuggestDemand">All about suggest and demand</h2>
     <p>Android Wear is like a great personal assistant: it knows you and your preferences, it only interrupts you when absolutely necessary, and it’s always on hand to provide a ready answer. Android Wear is helpful, respectful, and responsive.</p>
   </div>
 
-  <div class="layout-content-col span-13">
+  <div class="page-vision">
     <img src="{@docRoot}design/media/wear/vision_music.png" width="147" height="147" />
 
     <h2 id="Interaction">Zero or low interaction</h2>
diff --git a/docs/html/design/wear/style.jd b/docs/html/design/wear/style.jd
index abd3a9a..bb559fe 100644
--- a/docs/html/design/wear/style.jd
+++ b/docs/html/design/wear/style.jd
@@ -21,26 +21,26 @@
 
 
 
-<div class="layout-content-row">
-  <div class="layout-content-col span-6">
+<div class="cols">
+  <div class="col-6">
 
   <img src="{@docRoot}design/media/wear/assets_specifics.png" width="300"
     style="margin:32px 0 20px;">
   </div>
-  <div class="layout-content-col span-7">
+  <div class="col-7">
   <h2 id="Assets" style="clear:both">Specific Assets Required</h2>
 
   <p>A core set of standard assets may need to be provided depending on your card design: app icon, background image or images, action icons, and action confirmation animations. Of course, your specific design may necessitate other assets. Background images should be provided in landscape format at least 600px width for notifications that include pages of cards, since the system automatically adds a parallaxing effect.</p>
   </div>
 </div>
 
-<div class="layout-content-row">
-  <div class="layout-content-col span-6">
+<div class="cols">
+  <div class="col-6">
   <h2 id="PeekCard" style="clear:both">Peek Card Readability</h2>
 
   <p>Test your card layout to ensure that useful information is conveyed in the peek state on the Home screen. The main message of the card should be readable in the peek state, particularly for contextual cards. Content that requires an interaction to be read, for example a long message, should be cropped appropriately to provide an affordance to the user to swipe the card to read more.</p>
   </div>
-  <div class="layout-content-col span-6">
+  <div class="col-6">
 
   <img src="{@docRoot}design/media/wear/peek-card.png" width="300"
     style="margin:12px 0 0 20px">
diff --git a/docs/html/design/wear/watchfaces.jd b/docs/html/design/wear/watchfaces.jd
index 2a00802..2def05b 100644
--- a/docs/html/design/wear/watchfaces.jd
+++ b/docs/html/design/wear/watchfaces.jd
@@ -55,42 +55,42 @@
 
 <p>These guidelines help your concepts align across devices:</p>
 
-<div class="layout-content-row" style="margin-top:20px">
-<div class="layout-content-col span-6">
+<div class="cols" style="margin-top:20px">
+<div class="col-6">
   <h3>Create flexible concepts</h3>
   <p>Ideally, the visual functionality of the watch face works for both round and square
   formats. In this example, the visual functionality of the watch face is flexible enough
   to work well in either format without any adjustment. However, other design concepts require
   different executions for square and round screens.</p>
 </div>
-<div class="layout-content-col span-7">
+<div class="col-7">
   <img src="{@docRoot}design/media/wear/ScreenShapes_Invert.png" width="400"
        height="221" alt="" style="margin-top:-30px">
 </div>
 </div>
 
-<div class="layout-content-row" style="margin-top:20px">
-<div class="layout-content-col span-6">
+<div class="cols" style="margin-top:20px">
+<div class="col-6">
   <h3>Use a common design language</h3>
   <p>Try using a common set of colors, line weights, shading, and other design elements
   to draw a visual connection between your square and round versions. By using similar color
   palettes and a few consistent visual elements, the overall appearance of square and round
   can be appropriately customized while still feeling like part of the same visual system.</p>
 </div>
-<div class="layout-content-col span-7">
+<div class="col-7">
   <img src="{@docRoot}design/media/wear/ScreenShapes_Pyramids.png" width="400"
        height="221" alt="" style="margin-top:-30px">
 </div>
 </div>
 
-<div class="layout-content-row" style="margin-top:20px">
-<div class="layout-content-col span-6">
+<div class="cols" style="margin-top:20px">
+<div class="col-6">
   <h3>Adjust for analog concepts</h3>
   <p>Some of your concepts will naturally take the shape of an analog clock, like a center
   dial with hour and minute hands. In this case, consider the corner areas that are exposed
   when translating to a square format. Try extending and exploring this extra space.</p>
 </div>
-<div class="layout-content-col span-7">
+<div class="col-7">
   <img src="{@docRoot}design/media/wear/ScreenShapes_Rift.png" width="400"
        height="221" alt="" style="margin-top:-30px">
 </div>
@@ -137,8 +137,8 @@
 of screen available on the device. Consider the best design for your watch faces on all
 screens.</p>
 
-<div class="layout-content-row" style="margin-top:20px">
-<div class="layout-content-col span-9">
+<div class="cols" style="margin-top:20px">
+<div class="col-9">
   <h3>Reduced color space</h3>
   <p>Some displays use a reduced color space in ambient mode to save power.</p>
   <p>One reduced color space power saving method is to use a "low-bit" mode. In low-bit mode,
@@ -152,14 +152,14 @@
   displays which do not use color in ambient mode, the background may be either black or
   white.</p>
 </div>
-<div class="layout-content-col span-4">
+<div class="col-4">
   <img src="{@docRoot}design/media/wear/Render_LowBit.png" width="200"
        height="" alt="" style="margin-top:45px;margin-left:13px">
 </div>
 </div>
 
-<div class="layout-content-row" style="margin-top:20px">
-<div class="layout-content-col span-9">
+<div class="cols" style="margin-top:20px">
+<div class="col-9">
   <h3>Burn protection techniques</h3>
   <p>When designing for OLED screens, you should consider power efficiency and the screen
   burn-in effect. When these screens are in ambient mode, the system shifts the contents of
@@ -169,7 +169,7 @@
   replace filled images with pixel patterns. For analog watch face designs, hollow out the center
   where the hands meet to avoid pixel burn-in in this mode.</p>
 </div>
-<div class="layout-content-col span-4">
+<div class="col-4">
   <img src="{@docRoot}design/media/wear/Render_1Bit.png" width="200"
        height="" alt="" style="margin-top:-10px;margin-left:13px">
 </div>
@@ -183,8 +183,8 @@
 user the status of the wearable and show notifications from services on the user's phone. Try
 to keep critical elements in your watch face designs from being obscured by the UI elements.</p>
 
-<div class="layout-content-row" style="margin-top:20px">
-<div class="layout-content-col span-9">
+<div class="cols" style="margin-top:20px">
+<div class="col-9">
   <h3>Cards</h3>
 <p>Cards are the notification system that bridges information between the wearable and a
 mobile device. Cards are also how most applications communicate with users. The user will be
@@ -202,14 +202,14 @@
 <p>The system notifies your watch face when the bounds of a peek card change, so you can
 rearrange the elements in your design if necessary.</p>
 </div>
-<div class="layout-content-col span-4">
+<div class="col-4">
   <img src="{@docRoot}design/media/wear/CardsRender_Build.png" width="200"
        height="" alt="" style="margin-top:20px;margin-left:13px">
 </div>
 </div>
 
-<div class="layout-content-row" style="margin-top:20px">
-<div class="layout-content-col span-9">
+<div class="cols" style="margin-top:20px">
+<div class="col-9">
   <h3>Indicators</h3>
 <p>Indicators tell the user the status of the wearable, such as charging and airplane mode.
 When designing a watch face, consider how the indicator will fall over the watch face.</p>
@@ -219,14 +219,14 @@
 peek cards. If the edge of the watch face contains strong visual elements, such as
 ticks or numbers, place the indicators on the center of the screen.</p>
 </div>
-<div class="layout-content-col span-4">
+<div class="col-4">
   <img src="{@docRoot}design/media/wear/Indicators_Cropped.png" width="200"
        height="" alt="" style="margin-top:0px;margin-left:13px">
 </div>
 </div>
 
-<div class="layout-content-row" style="margin-top:20px">
-<div class="layout-content-col span-9">
+<div class="cols" style="margin-top:20px">
+<div class="col-9">
   <h3>The hotword</h3>
 <p>The hotword is the phrase "OK Google", which tells the user that they can interact with
 the watch using voice commands. When a user turns on the wearable, the hotword appears on
@@ -237,7 +237,7 @@
 turned on unless your design is tailored to have these elements appear on top of them, for example
 using dark solid colors with no patterns.</p>
 </div>
-<div class="layout-content-col span-4">
+<div class="col-4">
   <img src="{@docRoot}design/media/wear/Hotword_Cropped.png" width="200"
        height="" alt="" style="margin-top:0px;margin-left:13px">
 </div>
@@ -253,8 +253,8 @@
 <p>Your watch face can show users contextually relevant data and react to it by changing styles
 and colors in your design.</p>
 
-<div class="layout-content-row" style="margin-top:20px">
-<div class="layout-content-col span-9">
+<div class="cols" style="margin-top:20px">
+<div class="col-9">
   <h3>What do you want your user to know?</h3>
 <p>The first step in designing a data-integrated watch face is to define a conceptual user
 outcome based on available data. First, generate a strong concept or outcome you believe is
@@ -262,14 +262,14 @@
 at your design? Once you have identified your outcome, you need to determine how to obtain
 the required data.</p>
 </div>
-<div class="layout-content-col span-4">
+<div class="col-4">
   <img src="{@docRoot}design/media/wear/Render_Saturn.png" width="200"
        height="" alt="" style="margin-top:-10px;margin-left:13px">
 </div>
 </div>
 
-<div class="layout-content-row" style="margin-top:20px">
-<div class="layout-content-col span-9">
+<div class="cols" style="margin-top:20px">
+<div class="col-9">
   <h3>A watch dial is a timeline; add data to it</h3>
 <p>Your watch face concept may include use of data beyond time, such as weather, calendar
 and fitness data. Consider the inclusion of data integration creatively. Avoid simply
@@ -279,14 +279,14 @@
 you might design a watch face that describes how the temperature will change over the
 course of the day.</p>
 </div>
-<div class="layout-content-col span-4">
+<div class="col-4">
   <img src="{@docRoot}design/media/wear/Render_Episode.png" width="200"
        height="" alt="" style="margin-top:-10px;margin-left:13px">
 </div>
 </div>
 
-<div class="layout-content-row" style="margin-top:20px">
-<div class="layout-content-col span-9">
+<div class="cols" style="margin-top:20px">
+<div class="col-9">
   <h3>Stick to one message</h3>
 <p>Once you have solidified your conceptual direction or desired outcome, you will need to
 begin visualizing your watch face. The strongest watch face designs are highly glanceable
@@ -296,7 +296,7 @@
 upcoming event. By a process of reduction, you should arrive at a powerful singular
 expression of data to include in your design.</p>
 </div>
-<div class="layout-content-col span-4">
+<div class="col-4">
   <img src="{@docRoot}design/media/wear/Render_Albumem.png" width="200"
        height="" alt="" style="margin-top:-10px;margin-left:13px">
 </div>
diff --git a/docs/html/develop/index.jd b/docs/html/develop/index.jd
index e89e228..4ba0b09 100644
--- a/docs/html/develop/index.jd
+++ b/docs/html/develop/index.jd
@@ -9,378 +9,121 @@
 excludeFromSuggestions=true
 @jd:body
 
-<style>
-#noplayer-message {
-position:absolute;top:50%;left:0;width:100%;z-index:-1;text-align:center;display:none;
-}
-#player-frame object {z-index:1;}
-</style>
-
-<div id="player-wrapper">
-  <div id="player-frame">
-    <div id="noplayer-message">
-      <!-- busted flash player message -->
-      Your video is supposed to appear here.<br/>
-      Make sure you have the <a href="http://get.adobe.com/flashplayer/" target="_blank">Flash&reg; Player</a>.
+<section class="dac-expand dac-hero dac-section-light">
+  <div class="wrap">
+    <div class="cols dac-hero-content">
+      <div class="col-1of2 col-push-1of2 dac-hero-figure">
+        <img class="dac-hero-image" src="{@docRoot}images/develop/hero_image_studio5_2x.png"
+          srcset="/images/develop/hero_image_studio5.png 1x, /images/develop/hero_image_studio5_2x.png 2x" />
+      </div>
+      <div class="col-1of2 col-pull-1of2">
+        <h1 class="dac-hero-title">Get Started with Android Studio</h1>
+        <p class="dac-hero-description">
+        Everything you need to build incredible app experiences on phones and tablets, Wear, TV, and Auto. </p>
+        </p>
+        <a class="dac-hero-cta" href="{@docRoot}sdk/index.html">
+          <span class="dac-sprite dac-auto-chevron"></span>
+          Set up Android Studio
+        </a><br>
+        <a class="dac-hero-cta" href="{@docRoot}training/basics/training/index.html">
+          <span class="dac-sprite dac-auto-chevron"></span>
+          Build your first app
+        </a><br>
+        <a class="dac-hero-cta" href="{@docRoot}guide/index.html">
+          <span class="dac-sprite dac-auto-chevron"></span>
+          Learn about Android
+        </a><br>
+        <a class="dac-hero-cta" href="{@docRoot}samples/index.html">
+          <span class="dac-sprite dac-auto-chevron"></span>
+          Sample projects
+        </a><br>
+      </div>
     </div>
-    <div id="player"><!-- Youtube embeds here... actually replaces this div --></div>
-    <a class="close" onclick="$('#player-wrapper').hide()">close video</a>
+    <!--<div class="dac-section dac-small">
+      <div class="resource-widget resource-flow-layout col-16"
+           data-query="collection:develop/landing/mainlinks"
+           data-cardSizes="6x2"
+           data-maxResults="6"></div>
+    </div>-->
   </div>
-</div>
-<div class="wrap">
-   <!-- Slideshow -->
-   <div class="slideshow-container slideshow-develop col-16">
-       <a href="" class="slideshow-prev">Prev</a>
-       <a href="" class="slideshow-next">Next</a>
-       <div class="frame">
-           <ul>
-
-              <li class="item carousel-home">
-                 <div class="col-8">
-                   <img 
-                   style="max-height: 250px; margin-top:5px;
-                   margin-left: 30px; max-width: 451px;"
-src="{@docRoot}design/tv/images/focus.png"
-class="play no-shadow no-transform" />
-                 </div>
-                <div class="content-right col-6">
-                  <h2>Create Quality Apps for TV</h2>
-                  <p>Now that the Android platform has
-                  extended to TVs, your apps on Google Play have
-                  a new opportunity for engagement in the
-                  living room. To provide the best
-                  "leanback" experience on the couch, follow
-                  this quality checklist.</p>
-                  <p><a
-href="{@docRoot}distribute/essentials/quality/tv.html" class="button">Read
-more</a></p>
-                </div>            
-              </li>
-
-              <li class="item carousel-home">
-                 <div class="col-8">
-                   <img
-src="//lh4.ggpht.com/-lfjzgG5Dqrk/UHMThRtpRwI/AAAAAAAABpk/h4d3nsmkgPM/s400/mint.png"
-class="play no-shadow no-transform" />
-                 </div>
-                <div class="content-right col-6">
-                  <h2>Building Great Apps for Tablets</h2>
-                  <p>Tablets are a fast-growing part of the Android installed base and they offer new opportunities for user engagement and monetization. If you are targeting tablets, check out this list of tips and techniques on how to deliver a great app experience for tablet users.  </p>
-                  <p><a
-href="//android-developers.blogspot.com/2012/11/designing-for-tablets-were-here-to-help.html" class="button">Read
-more</a></p>
-                </div>            
-              </li>
-              <li class="item carousel-home">
-                 <div class="col-8">
-                   <img src="{@docRoot}images/google/gps-location.png"
-class="play no-shadow no-transform" style="margin:0 0 0 70px;height:230px;width:340px" />
-                 </div>
-                <div class="content-right col-6" style="width:350px">
-                  <h2>New Location APIs from Google</h2>
-                  <p>The latest version of Google Play services includes new APIs that provide more
-                  efficient and immediate user location data on devices running Android 2.2
-                  and higher. Features include geofencing APIs, user activity recognition, and
-                  power-efficient location updates.</p>
-                  <p><a
-href="{@docRoot}google/play-services/location.html" class="button">Read more</a></p>
-                </div>
-              </li>
-
-              <li class="item carousel-home">
-                 <div class="col-8">
-                   <img src="{@docRoot}images/google/gps-plus-signin-hero.jpg"
-class="play no-shadow no-transform" style="margin:0 0 0 40px;max-height:250px;height:250px;
-                                           max-width:409px;width:409px" />
-                 </div>
-                <div class="content-right col-6" style="width:350px">
-                  <h2>New Cross-Platform Single Sign On</h2>
-                  <p>Google+ Sign-In is an easy, trusted way to sign a user into your app.
-                  Now it's even more seamless. A user can sign in to your app on one device and
-                  pick it up on another&mdash;without signing in again. Best of all, it's built
-                  into Google+ Sign-in, so there's no change needed in your app.</p>
-                  <p><a
-href="{@docRoot}google/play-services/plus.html" class="button">Read more</a></p>
-                </div>
-              </li>
-
-              <li class="item carousel-home">
-                 <div class="col-8">
-                   <img src="{@docRoot}images/google/maps-v2-trulia-n7.png"
-class="play no-shadow no-transform" style="margin:0 0 0 40px;max-height:250px;height:250px;
-                                           max-width:409px;width:409px" />
-                 </div>
-                <div class="content-right col-6" style="width:350px">
-                  <h2>New Google Maps Android APIs!</h2>
-                  <p>Google Maps Android API version 2 is now available with enhanced
-                    features such as 3D buildings, vector-based map tiles, rich overlay capabilities,
-                    indoor maps, support for fragments, and much more.</p>
-                    
-                  <p>The APIs are bundled with Google Play services and are
-                  compatible with Android 2.2 and higher.</p>
-                  <p><a
-href="{@docRoot}google/play-services/maps.html" class="button">Read more</a></p>
-                </div>            
-              </li>
-           </ul>
-       </div>
-   </div>
-   <!-- /End slideshow -->
-</div>
-<div class="wrap">
-	<!-- news and feature feed -->
-	<div class="feed col-8" style="margin-left:0">
-		<ul class="feed-nav">
-			<li class="active">DEVELOPER NEWS</li>
-			<li>FEATURED DOCS</li>
-		</ul>
-		<div class="feed-container">
-			<div class="feed-frame">
-                                <!-- DEVELOPER NEWS -->
-          <ul>
-            <li><a href="//android-developers.blogspot.com/2013/07/making-beautiful-android-app-icons.html">
-              <div class="feed-image" style="background:url('//2.bp.blogspot.com/-HfoO6KNFBKA/UeiyRoELb7I/AAAAAAAAAFs/bHR-5viktU4/s1000/icons.png') no-repeat 0 0;background-size:500px;background-position:center center;"></div>
-              <h4>Making Beautiful Android App Icons</h4>
-              <p>As higher density screens gain popularity, it's important to make sure your launcher icon is crisp and high quality...</p>
-              </a></li>
-            <li><a href="//android-developers.blogspot.com/2013/07/beautiful-design-collection-summer-2013.html">
-              <div class="feed-image" style="background:url('//1.bp.blogspot.com/-k8DZYu0daT4/UdRt1AzstvI/AAAAAAAAAFM/CvEkb2yh-i0/s965/beautifulapps_4.png') no-repeat 0 0"></div>
-              <h4>The Beautiful Design Summer 2013 Collection</h4>
-              <p>See the apps chosen by the Android Design team for their masterfully crafted design details...</p>
-              </a></li>
-            <li><a href="//android-developers.blogspot.com/2013/10/new-developer-features-in-google-play.html">
-              <div class="feed-image" style="background:url('//3.bp.blogspot.com/-k33rf398Lqw/UlRUMQQRUNI/AAAAAAAAClM/pSwz2YgQpmY/s1600/gps-play_games_logo.png') no-repeat 0 0;background-size:130px;background-position:8px -4px;"></div>
-              <h4>New Features in Google Play Games</h4>
-              <p>Three new features that make it easier to understand what players are doing in your game and help you manage game features...</p>
-            </a></li>
-            <li><a href="//android-developers.blogspot.com/2013/05/new-ways-to-optimize-your-business-in.html">
-              <div class="feed-image" style="background:url('//3.bp.blogspot.com/-_8WvpdTVGsE/UkxxxrVoNNI/AAAAAAAACj8/FrQyA-BO11c/s1600/gp-referral-ga.png') no-repeat 0 0;background-size:180px"></div>
-              <h4>Linking Google Analytics with Google Play</h4>
-              <p>Understanding your users easier through a new integration between Google Analytics and the Google Play Developer Console...</p>
-              </a></li>
-          </ul>
-                                <!-- FEATURED DOCS -->
-          <ul>
-            <li><a href="{@docRoot}distribute/googleplay/spotlight/tablets.html">
-              <h4>Tablet Stories</h4>
-              <p>More developers are investing in a full tablet experience for their apps. Here are some stories from developers who are seeing real results as they expand their offering to include Android tablets. </p>
-              </a></li>
-            <li><a href="{@docRoot}distribute/googleplay/quality/core.html">
-              <h4>Core App Quality Guidelines</h4>
-              <p>This document helps you assess basic aspects of quality in your app through a compact set of core app quality criteria and associated tests. All Android apps should meet these criteria.</p>
-              </a></li>
-            <li><a href="{@docRoot}guide/topics/ui/notifiers/notifications.html">
-              <h4>Updated Notifications API Guide</h4>
-              <p>The Notifications API Guide is updated to include information about building Jelly Bean rich notifications using the Support Library APIs for backwards-compatibility.</p>
-              </a></li>
-            <li><a href="{@docRoot}guide/topics/ui/dialogs.html">
-              <h4>Updated Dialogs API Guide</h4>
-              <p>The Dialogs API Guide now shows to use DialogFragment class, a simpler way to manage your dialogs and embed them in alternative layouts.</p>
-              </a></li>                                      
-          </ul>
-			</div>
-		</div>
-	</div>	<!-- /news and feature feed -->
-	<!-- video feed -->
-	<div class="feed col-8" style="margin-right:0">
-		<ul class="feed-nav">
-			<li class="active">DEVELOPERS LIVE</li>
-			<li>VIDEO PLAYLISTS</li>
-		</ul>
-		<div class="feed-container">
-			<div class="feed-frame">
-              <ul id="DevelopersLive">
-              </ul>
-              <ul id="VideoPlaylists">
-              </ul>
-			</div>
-		</div>
-	</div>
-	<!-- /video feed -->
+</section>
+<div class="wrap dac-offset-parent">
+  <a class="dac-fab dac-scroll-button" data-scroll-button href="#latest">
+    <i class="dac-sprite dac-arrow-down-gray"></i>
+  </a>
 </div>
 
-<br class="clearfix"/>
+<section class="dac-section dac-gray dac-small dac-invert" id="latest"><div class="wrap">
+  <h2 class="norule">Latest</h2>
+  <div class="resource-widget resource-flow-layout col-16"
+       data-query="collection:develop/landing/latest"
+       data-cardSizes="6x6"
+       data-maxResults="3"></div>
+</div></section>
 
-      
-      
-      
-      
-      
-      
-      
-      
+<section class="dac-section dac-light"><div class="wrap">
+  <h1 class="dac-section-title">Tools for building apps</h1>
+  <div class="dac-section-subtitle">
+    Insights into Android's tools and libraries to speed your development.
+  </div>
+  <div class="resource-widget resource-flow-layout col-16"
+       data-query="collection:develop/landing/tools"
+       data-cardSizes="6x6"
+       data-maxResults="3"
+       data-sortOrder="random"></div>
+  <ul class="dac-section-links">
+  </ul>
+</div></section>
 
-<script src="//swfobject.googlecode.com/svn/trunk/swfobject/swfobject.js" type="text/javascript"></script>
-<script type="text/javascript">
+<section class="dac-section dac-section-light"><div class="wrap">
+  <h1 class="dac-section-title">Android performance patterns</h1>
+  <div class="dac-section-subtitle">
+    Everything you need to know about improving your app’s performance.
+  </div>
+  <div class="resource-widget resource-flow-layout col-16"
+       data-query="collection:develop/landing/performance"
+       data-cardSizes="6x6"
+       data-maxResults="3"></div>
+  <ul class="dac-section-links">
+    <li class="dac-section-link"><a href="https://www.youtube.com/playlist?list=PLOU2XLYxmsIKEOXh5TwZEv89aofHzNCiu">
+      <span class="dac-sprite dac-auto-chevron"></span>
+      Playlist
+    </a></li>
+  </ul>
+</div></section>
 
-/* Load a video into the player box.
- * @param id        The YouTube video ID
- * @param title     The video title to display in the player box (character escaped)
- * @param autoplay  Whether to automatically play the video
- */
-function loadVideo(id, title, autoplay) {
-  swfobject.embedSWF('//www.youtube.com/v/' + id + '&rel=1&border=0&fs=1&autoplay=' +
-      (autoplay?1:0), 'player', '525', '330', '9.0.0', false, false, {allowfullscreen: 'true'});
-  $("#videoPlayerTitle").html("<h2>" + unescape(title) + "</h2>");
-  $("#player-wrapper").show();
-  setTimeout(function(){$('#noplayer-message').show()}, 2000);
-}
+<section class="dac-section dac-gray"><div class="wrap">
+  <h1 class="dac-section-title">Ubiquitous computing on Android</h1>
+  <div class="dac-section-subtitle">
+    Opening up new stuff.
+  </div>
+  <div class="resource-widget resource-flow-layout col-16"
+       data-query="collection:develop/landing/ubicomp"
+       data-cardSizes="6x6"
+       data-maxResults="3"></div>
+  <ul class="dac-section-links">
+    <li class="dac-section-link"><a href="/wear/index.html">
+      <span class="dac-sprite dac-auto-chevron"></span>
+      Wear
+    </a></li>
+    <li class="dac-section-link"><a href="/tv/index.html">
+      <span class="dac-sprite dac-auto-chevron"></span>
+      TV
+    </a></li>
+    <li class="dac-section-link"><a href="/auto/index.html">
+      <span class="dac-sprite dac-auto-chevron"></span>
+      Auto
+    </a></li>
+  </ul>
+</div></section>
 
-/* Draw all videos from a playlist into a 'videoPreviews' list
- * @param data  The feed data returned from the youtube request
- */
-function renderVideoPlaylists(data) {
-  var MAX_LIST_DESC_LENGTH = 130; // the length at which we will trim the description
-  var MAX_VIDEO_DESC_LENGTH = 100; // the length at which we will trim the description
-  var MAX_LIST_LENGTH = 4; // number of videos to put in the list
-  var feed = data.feed;
-  var entries = feed.entry || [];
-  var playlistId = feed.yt$playlistId.$t;
-
-  var $ulVideos = $('<ul style="display:none"/>');
-  var summary = feed.media$group.media$description != null ? feed.media$group.media$description.$t : feed.subtitle.$t;
-  
-  var $liPlaylist = $('<li class="playlist"></li>');
-  var $aPlaylist = $('<a href="" onclick="togglePlaylist(this);return false;"></a>');
-  $liPlaylist.append($aPlaylist);
-  $aPlaylist.append('<h4>' + feed.title.$t + '</h4>');
-  
-  var playlistDescription = summary.substr(0, MAX_LIST_DESC_LENGTH);
-  playlistDescription += playlistDescription.length == MAX_LIST_DESC_LENGTH ? "..." : ""; // add ellipsis if we've chopped the description
-  $aPlaylist.append('<p>' +  playlistDescription + '</p>');
-  
-  // Loop through each entry (each video) and add it to the 'videoPreviews' list
-  var length = feed.entry.length < MAX_LIST_LENGTH ? feed.entry.length : MAX_LIST_LENGTH; // max of 4 videos per list
-  for (var i = 0; i < length; i++) {
-    var entry = entries[i];
-
-    var title = entry.title.$t;
-    var id = entry.media$group.yt$videoid.$t;
-    var thumbUrl = entry.media$group.media$thumbnail[0].url;
-    var fullDescription = entry.media$group.media$description.$t;
-    var playerUrl = entry.media$group.media$content[0].url;
-
-    var shortDescription = fullDescription.substr(0, MAX_VIDEO_DESC_LENGTH);
-    shortDescription += shortDescription.length == MAX_VIDEO_DESC_LENGTH ? "..." : ""; // add ellipsis if we've chopped the description
-
-    var img = $('<img src="' + thumbUrl + '" width="60" height="45"/>');
-    var a = $('<a href="#" onclick="loadVideo(\'' + id + '\',\'' + escape(title) + '\',true); return false;" />');
-    var pShortDescription = $('<p>' + shortDescription + '</p>');
-    var h5Title = "<h5>" + title + "</h5>";
-    var li = $('<li class="playlist-video"/>');
-
-    li.append(a);
-    a.append(img).append(h5Title).append(pShortDescription);
-
-    $ulVideos.append(li);
-    
-    // use the first entry's thumbnail for the playlist
-    if (i == 0) {
-      $aPlaylist.prepend('<img src="' + thumbUrl + '" width="120" height="90"/>');
-    }
-  }
-  
-  if (feed.entry.length > MAX_LIST_LENGTH) {
-    // add item to go to youtube for playlist
-    $ulVideos.append('<li class="more"><a href="//www.youtube.com/playlist?list=' + playlistId + '">More &raquo;</a></li>');
-  }
-
-  $liPlaylist.append($ulVideos);
-  $('#VideoPlaylists').append($liPlaylist);
-}
-
-
-function renderDevelopersLivePlaylist(data) {
-
-  var MAX_DESC_LENGTH = 125; // the length at which we will trim the description
-  var feed = data.feed;
-  var entries = feed.entry || [];
-  var playlistId = feed.yt$playlistId.$t;
-
-  var ul = $('#DevelopersLive');
-
-  // Loop through each entry (each video) and add it to the '#DevelopersLive' list
-  for (var i = 0; i < 4; i++) {
-    var entry = entries[i];
-
-    var title = entry.title.$t;
-    var id = entry.media$group.yt$videoid.$t;
-    var thumbUrl = entry.media$group.media$thumbnail[0].url;
-    var fullDescription = entry.media$group.media$description.$t;
-    var playerUrl = entry.media$group.media$content[0].url;
-    var shortDescription = fullDescription.substr(0, MAX_DESC_LENGTH);
-    shortDescription += shortDescription.length == MAX_DESC_LENGTH ? "..." : ""; // add ellipsis if we've chopped the description
-
-    var img = $('<img src="' + thumbUrl + '" width="120" height="90"/>');
-    var a = $('<a href="#" onclick="loadVideo(\'' + id + '\',\'' + escape(title) + '\',true); return false;" />');
-    var pShortDescription = $('<p>' + shortDescription + '</p>');
-    var h4Title = "<h4>" + title + "</h4>";
-    var li = $('<li/>');
-
-    li.append(a);
-    a.append(img).append(h4Title).append(pShortDescription);
-
-    ul.append(li);
-  }
-}
-
-/* This 'playlist' object defines the playlist IDs for each tab.
- * Each name inside 'playlist' corresponds to class names for the tab that the playlists belong to (eg: "googleioTab" and "googleioBox" divs).
- * Each string in 'ids' is the ID of a YouTube playlist that belongs in the corresponding tab.
- */
-var playlists = {
-  'designinaction' : {
-    'ids': ["PLWz5rJ2EKKc8j2B95zGMb8muZvrIy-wcF"]
-  },
-  'bizdevbytes' : {
-    'ids': ["PLWz5rJ2EKKc8-Osr0TuHyTMEhKV0xJ6ql"]
-  },
-  'thisweek' : {
-    'ids': ["PLWz5rJ2EKKc9Wam5jE-9oY8l6RpeAx-XM"]
-  },
-  'googleio' : {
-    'ids': ["PLWz5rJ2EKKc9WGUwq2gQ-coU3fSyexgOx"]
-  }
-};
-
-/* Request the playlist feeds from YouTube */
-function showVideosPlaylists() {
-  for (var x in playlists) {
-    var ids = playlists[x].ids;
-    for (var i in ids) {
-      var script = "<script type='text/javascript' src='//gdata.youtube.com/feeds/api/playlists/"
-                    + ids[i] +
-                    "?v=2&alt=json-in-script&max-results=50&callback=renderVideoPlaylists&orderby=position'><\/script>";
-      $("body").append(script);
-    }
-  }
-}
-
-
-/* Request the playlist feeds from YouTube */
-function showDevelopersLivePlaylist() {
-  var playlistId = "PLWz5rJ2EKKc_XOgcRukSoKKjewFJZrKV0"; /* DevBytes */
-  var script = "<script type='text/javascript' src='//gdata.youtube.com/feeds/api/playlists/"
-                + playlistId +
-                "?v=2&alt=json-in-script&max-results=10&callback=renderDevelopersLivePlaylist&orderby=position'><\/script > ";
-  $("body").append(script);
-}
-
-
-function togglePlaylist(listLink) {
-  var $list = $(listLink).parent();
-  var $ul = $list.find('ul');
-  if ($ul.is(":visible")) {
-    $ul.slideUp(function() {
-      $list.css({'height':'inherit'});
-    });
-  } else {
-    $list.closest('ul').find('li.playlist').find('ul').slideUp();
-    $ul.slideDown();
-    $list.css({'height':'auto'});
-  }
-}
-
-showDevelopersLivePlaylist();
-showVideosPlaylists();
-</script>
+<section class="dac-section dac-light" id="courses"><div class="wrap">
+  <h1 class="dac-section-title">Online Courses</h1>
+  <div class="dac-section-subtitle">Free online courses from Android
+    experts that bring you step-by-step to building your own apps.</div>
+  <div class="resource-widget resource-flow-layout col-16"
+       data-query="collection:develop/landing/courses"
+       data-sortOrder="random"
+       data-cardSizes="6x6"
+       data-maxResults="6"></div>
+</div></section>
diff --git a/docs/html/distribute/analyze/index.jd b/docs/html/distribute/analyze/index.jd
index d8ab59e..c40a699 100644
--- a/docs/html/distribute/analyze/index.jd
+++ b/docs/html/distribute/analyze/index.jd
@@ -1,5 +1,6 @@
 page.title=Analyze
 page.metaDescription=Understanding what your users do inside your app is the key to engaging and monetizing them.
+page.image=images/cards/analytics-mobile_2x.jpg
 section.landing=true
 excludefromsuggestions=true
 nonavpage=true
@@ -30,11 +31,8 @@
   data in AdMob</a> and have the full picture of your app revenue.
 </p>
 
-<div class="dynamic-grid">
-
   <div class="resource-widget resource-flow-layout landing col-16"
     data-query="collection:distribute/analyzelanding"
     data-cardSizes="6x6"
     data-maxResults="10">
   </div>
- 
\ No newline at end of file
diff --git a/docs/html/distribute/analyze/start.jd b/docs/html/distribute/analyze/start.jd
index 2a5a9f4..c3a1f87 100644
--- a/docs/html/distribute/analyze/start.jd
+++ b/docs/html/distribute/analyze/start.jd
@@ -1,7 +1,7 @@
 page.title=Get Started with Analytics
 page.metaDescription=Unlock the power of Analytics by choosing the implementation that works best for your app.
 page.tags="analytics, user behavior"
-page.image=distribute/images/gp-analytics-logo.jpg
+page.image=images/cards/card-analytics_2x.png
 
 
 @jd:body
diff --git a/docs/html/distribute/analyze/understand-user-value.jd b/docs/html/distribute/analyze/understand-user-value.jd
index 30dca9c..e561941 100644
--- a/docs/html/distribute/analyze/understand-user-value.jd
+++ b/docs/html/distribute/analyze/understand-user-value.jd
@@ -71,6 +71,53 @@
 <img src="{@docRoot}distribute/analyze/images/demographics.png">
 </div>
 
+<h2 id="change">All Things Change with Time, and So Do Your Users</h2>
+
+<p>
+  Getting users to install and open your app the first time is a big accomplishment;
+  however, it’s only the first step of what is hopefully a long and prosperous
+  relationship. The best apps aren’t just the ones with the most downloads, they are
+  the ones that have users coming back day after day, month after month, and year
+  after year.
+</p>
+
+<p>
+  Google Analytics takes a user-centric approach to reporting to help you explore what
+  keeps users coming back. <strong>Cohort Reporting</strong> allows you to see which users
+  come back over time and when usage tends to fall off. You can easily take this same
+  information and overlay it on any other report.
+</p>
+
+<div>
+<img src="{@docRoot}distribute/analyze/images/cohort_reporting.png">
+</div>
+
+<h2 id="measure-value">Measure Value over Time</h2>
+
+<p>
+  Analyzing retention is a great way to ensure users stick with your app and come back day after
+  day. With <strong>Lifetime Value</strong> reporting, you’ll get a full picture of these users’
+  value over time. To get the most out of this report, it’s important to start with a clear
+  definition of what a user’s value means to you based on your business objectives.
+</p>
+
+<p>
+  Once you’ve defined the value, you can access the report to measure certain variables such as
+  revenue per user and number of screen views per user over a period of 90 days. For example, if
+  the goal of your app is to get users to purchase virtual or material goods, you’ll want to use
+  this report to get a clear view of when they make a purchase and how much they are spending in
+  your app over time.
+</p>
+
+<p>
+  Lifetime Value is a key metric to use to measure the effectiveness of your acquisition
+  campaigns. If your cost to acquire a new user is higher than the average value over time,
+  you might want to optimize your campaigns to meet the lifetime revenue they generate. Lifetime
+  Value is particularly valuable if you offer in-app purchases, but it can be applied to
+  discovering many other useful insights, such as number of times they open your app, total
+  number of screens and goal completions.
+</p>
+
 <h2 id="cohort">Segment Your Data</h2>
 
 <p>
diff --git a/docs/html/distribute/engage/ads.jd b/docs/html/distribute/engage/ads.jd
new file mode 100644
index 0000000..ad6940f
--- /dev/null
+++ b/docs/html/distribute/engage/ads.jd
@@ -0,0 +1,63 @@
+page.title=Drive engagement with AdWords Ads
+page.metaDescription=Keep users coming back. AdWords offers re-engagement tools to help your app stay top of mind with users.
+page.tags="engagement, adwords"
+page.image=images/cards/adwords_2x.jpg
+@jd:body
+
+<p>Successful apps keep users coming back again and again. AdWords offers app
+re-engagement tools to help your app stay top of  mind with users who’ve
+already installed it on their phone. AdWords can remind them of key features
+and encourage them to try your app again, or help them complete an activity
+they didn't know your app could handle.</p>
+
+<p>
+  <a href="https://support.google.com/adwords/answer/6032073">Get started with AdWords mobile
+  app engagement campaigns</a>.
+</p>
+
+
+
+<div class="wrap">
+  <div class="cols" style="margin-top:2em;">
+    <div class="col-1of2">
+   <h3>From search</h3>
+   <img src="/images/distribute/promote_ads.png">
+    <p class="figure-caption">Add deep links to your app, then bring users straight
+    to relevant app content when they’re searching.</p>
+    </div>
+    <div class="col-1of2">
+    <h3>From apps</h3>
+    <img src="/images/distribute/promote_ads_inapp.png">
+    <p class="figure-caption">Use remarketing and deep links to bring users to just the right
+    place in your app to re-engage and convert, from other apps and games they love.</p>
+    </div>
+  </div>
+</div>
+
+
+<h3 id="tips">Tips</h2>
+
+<ul>
+  <li> Track what users do in your app after they click an ad, by installing the
+    AdWords <a href="https://developers.google.com/app-conversion-tracking/">conversion tracking
+    SDK</a>.
+  <li> Advertise a compelling reason for users to re-engage with your app, such as a
+    reminder or a special offer.
+  <li> <a href="https://developers.google.com/app-indexing/webmasters/app">Add deep links</a> to
+    your app and bring users directly to the most relevant and interesting
+    parts of your app, where they can easily take action.
+  <li> Re-engage with your app users across the Display Network with remarketing lists
+and search with keywords.
+  <li> Use remarketing lists to target high value users so that you can drive more
+conversions in your app.
+</ul>
+
+<h2 id="related_resources">Related resources</h2>
+
+<div class="resource-widget resource-flow-layout col-13" 
+  data-query="collection:distribute/engage/reengage"
+  data-sortorder="-timestamp"
+  data-cardsizes="9x3"
+  data-maxresults="6">
+</div>
+
diff --git a/docs/html/distribute/engage/deep-linking.jd b/docs/html/distribute/engage/deep-linking.jd
index a25c3c6..701cb99 100644
--- a/docs/html/distribute/engage/deep-linking.jd
+++ b/docs/html/distribute/engage/deep-linking.jd
@@ -1,99 +1,75 @@
-page.title=Deep Link to Bring Users Back
-page.metaDescription=Use deep links to bring your users into your apps from social posts, search, or ads.
-page.tags="app indexing, google+ signin"
-page.image=/images/gp-listing-4.jpg
-
+page.title=Increase Usage with Search
+page.metaDescription=Use search to bring your existing users back into your app.
+page.image=images/cards/google-search_2x.png
+page.tags=engagement, appindexing, search
 @jd:body
 
 <p>
-  Use deep links to bring your users into your apps from social posts,
-  search, or ads.
-</p>
-
-<div class="headerLine">
-<h2>Deep Linking from Google+ Posts</h2>
-</div>
-
-<p>
-  <a href="https://developers.google.com/+/mobile/android/share/deep-link">Deep
-  linking</a> allows the Google+ apps on mobile devices to direct clicks on a
-  shared post that contains deep-link information to a resource within your
-  apps.
-</p>
-
-<p style="margin-bottom:2em;">
-  If the user doesn’t have your app installed, they’re prompted to install it
-  before accessing the resource.
-</p>
-
-<div style="padding:2em, auto;width:550px;">
-  <div style="float:right; width:260px; padding-left:1em;">
-    <img src="{@docRoot}images/gp-engage-5.jpg" class="border-img">
-    <p class="img-caption">
-      G+ Post with Deep Link to Buy
-    </p>
-  </div>
-
-  <div style="width:260px;float:left;">
-    <img src="{@docRoot}images/gp-engage-6.jpg" class="border-img">
-    <p class="img-caption">
-      Purchase page within app
-    </p>
-  </div>
-</div>
-
-
-<div class="headerLine">
-<h2>Deep Linking from Google Search &mdash; App Indexing</h2>
-</div>
-
-
-<div style="float:right;">
-  <img src="/images/gp-listing-4.jpg" style="padding-top:1em;padding-left:2em;">
-</div>
-
-<p>
-  Another way to bring users back to your apps is to apply for app indexing.
+  Users who have your app installed might overlook it as a way to get the answers
+  they need. With App Indexing, deep links to your Android app appear in Google Search
+  results so users can get to your native mobile experience quickly, landing exactly
+  on the right content within the app. 
 </p>
 
 <p>
-  When a user searches for content available within your app, Google can show
-  an "Open in App" button in in mobile search results. For instance, if a user
-  searches for a restaurant and you’ve got that establishment in your dining
-  app, a link can be shown to open the page within your app. Learn more about
-  <a href="https://developers.google.com/app-indexing/">linking to in-app
-  content</a>.
-</p>
+  Google Search for developers can also help you re-engage your users in other ways
+  &mdash; by letting them interact with your app from a voice action, get deep into
+  your app from a search suggestion, or go back to your email reminders in Google Now. </p>
 
-<div class="clearfloat" style="margin-top:2em;"></div>
 
-<div style="float:right;width:340px;padding-left:2em;">
-  <img src="/images/gp-ads-linking2.jpg" style="padding-top:1em;">
+<p>Get started by <a href="https://developers.google.com/app-indexing/">indexing your
+app</a> and then take advantage of <a
+href="https://developers.google.com/voice-actions/">Voice actions</a>, the
+<a href="https://developers.google.com/app-indexing/webmasters/appindexingapi">App
+Indexing API</a>, and <a href="https://developers.google.com/schemas/now/cards">Google
+Now cards</a>.</p>
+
+
+<h2 id="help_users_find_your_information">App Indexing</h2>
+
+<p>Re-engage with your users with deep-links displayed in search results, links
+that take users directly to content within your app.</p>
+
+
+<div style="margin:1em">
+<img src="{@docRoot}images/distribute/app-indexing-deep-links.png">
+</div>
+<h2 id="empower_users_in_your_app">Voice actions</h2>
+
+<p>Brings your users into your app with voice actions such as “Ok
+Google, play a song” or “Ok Google, search for
+hotels in Maui on TripAdvisor”.</p>
+
+<div style="margin-top:1em">
+<img src="{@docRoot}images/distribute/voice-actions-engagement.png">
 </div>
 
-<div class="headerLine ">
-<h2>Deep Linking from Google Ads</h2>
-</div>
-<p>
-  Ads can remind users about the apps they already have.
-</p>
 
-<p>
-  As with deep links from Google's organic search results, AdWords deep links
-  send users directly to the relevant pages in apps they already have on their
-  mobile device. A mobile search for "flights to London," for instance, could
-  take a user straight to the London page in a travel app. <a href=
-  "http://www.thinkwithgoogle.com/products/ads-apps.html"
-  class="external-link">Learn more</a>.
-</p>
+<h2 id="assist_your_users">Google Now</h2>
 
-<div class="headerLine clearfloat">
-  <h2 id="related-resources">
-    Related Resources
-  </h2>
+<p>If you’re building travel, entertainment, or restaurant apps, Google Now cards
+can re-engage your users via structured data markup delivered in email notifications.</p>
+
+<div style="margin-top:1em">
+<img src="{@docRoot}images/distribute/google-now-engagement.png">
 </div>
 
-<div class="resource-widget resource-flow-layout col-13" data-query=
-"collection:distribute/engage/deeplinks" data-sortorder="-timestamp"
-data-cardsizes="9x3" data-maxresults="6">
-</div>
\ No newline at end of file
+<h2 id="tips">Tips</h2>
+
+<ul>
+  <li>For users who have viewed pages in your app, and later searches for similar content,
+  you can use the App Indexing API to have deep links appear in search suggestions.</li>
+  <li>App Indexing is flexible—you can direct search users to your app or website on a
+  page by page basis. Moving from search results to apps is seamless, without any pop-ups
+  or extra taps to slow users down.</li>
+</ul>
+
+<h2 style="clear:both" id="related-resources">Related Resources</h2>
+
+<div class="resource-widget resource-flow-layout col-13"
+  data-query="collection:distribute/engage/appindexing"
+  data-sortOrder="-timestamp"
+  data-cardSizes="6x2"
+  data-maxResults="3"></div>
+
+
diff --git a/docs/html/distribute/engage/easy-signin.jd b/docs/html/distribute/engage/easy-signin.jd
index d066181..924c5b4 100644
--- a/docs/html/distribute/engage/easy-signin.jd
+++ b/docs/html/distribute/engage/easy-signin.jd
@@ -1,105 +1,76 @@
-page.title=Make Signing In Easy
+page.title=Add Quick and Secure Google Sign-in
 page.metaDescription=Increase conversion rates while helping users minimize typing by letting users sign in with Google+.
-page.tags="google+"
-page.image=/images/google/gps-googleplus.png
-
+page.tags="google", "identity", "signin"
+page.image=images/cards/google-sign-in_2x.png
 
 @jd:body
 
-<div class="sidebox-wrapper" style="float:right;">
-  <div class="sidebox" style="width:360px;">
-    <p>
-      <strong>Tip:</strong> For game developers, Google+ signin is already
-      included as part of Google Play game services.
-    </p>
+<p>Get people into your apps quickly and securely, using a registration system they
+already use and trust – their Google account. With minimal effort, you can increase
+registration and sign-in conversion by adding trusted registration system that's
+familiar to users, consistent across devices, and quick and easy to use.</p>
+
+<p>Get started <a href="https://developers.google.com/identity/sign-in/">integrating
+Google sign-in into your apps and games</a>.</p>
+
+<div class="wrap">
+  <div class="cols" style="margin-top:2em;">
+    <div class="col-3of12">
+      <h3>Quick and secure app access</h3>
+        <p>A secure authentication system that makes sign-in easy for your users by
+        letting them use their Google account, which they already use with Gmail,
+        Play, Google+, and other Google services.</p>
+    </div>
+    <div class="col-8of12 col-push-1of12">
+     <img src="{@docRoot}images/distribute/signin-secure.png" style="padding-top:1em;">
+    </div>
+  </div>
+
+  <div class="cols" style="margin-top:2em;">
+    <div class="col-3of12">
+      <h3>Seamless experience across screens</h3>
+      <p>Keep your users engaged, no matter what device they pick up or sit down at.
+      Offer a seamless app experience across devices and into your website, securely
+      from a one-time consent. </p>
+    </div>
+    <div class="col-8of12  col-push-1of12">
+      <img src="{@docRoot}images/distribute/signin-seamless.png" style="padding-top:1em;">
+    </div>
+  </div>
+
+  <div class="cols" style="margin-top:2em;">
+    <div class="col-3of12">
+      <h3>Help your users take action with Google</h3>
+        <p>Securely connect users with Google services and let them pay with Google
+        Wallet, share with Google contacts, save files to Drive, add events to
+        Calendar, and more.</p>
+    </div>
+    <div class="col-8of12 col-push-1of12">
+     <img src="{@docRoot}images/distribute/signin-apps.png" style="padding-top:1em;">
+    </div>
   </div>
 </div>
 
-<p>
-  Increase conversion rates while helping users minimize typing by letting
-  users sign in with Google+. The <a href=
-  "{@docRoot}google/play-services/plus.html">Google+ platform for Android</a>
-  authenticates users with their Google credentials safely and securely. With
-  your <a href="https://developers.google.com/+/mobile/android/sign-in">users
-  signing in with Google</a>, you can create more engaging experiences and
-  drive the use of your apps .
-</p>
 
-<div style="width:450px;">
-  <img src="{@docRoot}images/google/gps-googleplus.png" style="padding-top:1em;">
-</div>
-
-<p>
-  Use the Google+ social graph to welcome users by name, display their
-  pictures, connect them with friends and more. Users authenticate once and
-  then are signed-in automatically when they come back, eliminating the need to
-  remember and type names and passwords.
-</p>
-
-<div class="headerLine">
-  <h2>
-    And Spreading the Word a Snap
-  </h2>
-
-
-</div>
-
-
-<div class="figure" style="float:right;">
-  <img src="{@docRoot}images/gp-engage-share-plus.png" style=
-  "width:160px;padding-top:1em;">
-  <p class="img-caption">
-    Easy sharing through Google+
-  </p>
-</div>
-
-
-<p>
-  Using Google+ can help users spread the word about your apps to their
-  friends, attracting them to your apps, right from within your apps:
-</p>
-
-<p>
-  Google+ is also a great way to build a community of loyal fans that will help
-  you with <a href=
-  "https://support.google.com/googleplay/android-developer/answer/3131213">beta
-  testing</a>.
-</p>
+<h2>Tips</h2>
 
 <ul>
-  <li>Using a <a href=
-  "https://developers.google.com/+/mobile/android/recommend">native +1
-  button</a> to let users make a recommendation for your apps or their content.
-  </li>
-
-  <li>
-    <a href="https://developers.google.com/+/mobile/android/share/">Share rich
-    content</a> to the Google+ stream, including text, photos, URL attachments,
-    and location.
-  </li>
-
-  <li>Create <a href=
-  "https://developers.google.com/+/mobile/android/share/interactive-post">Interactive
-  posts</a> to share your website or apps, users can even invite friends to
-  "listen," "RSVP," "check-in," or one of over 100 actions.
-  </li>
+<li>Add <strong>over-the-air installs</strong> to your website. After signing in with Google
+  on the web, users will have the option to send your Android app to their device instantly,
+  without them ever leaving your website.</li>
+  <li>With Google sign-in, you can take advantage of other <strong>Google+ platform
+  features</strong> like adding a +1 button so users can make recommendations and the ability
+  to share rich content to the Google+ stream.</li>
 </ul>
 
-<p style="clear:both">
-</p>
-  <div class="headerLine">
-    <h2 id="related-resources">
-      Related Resources
-    </h2>
 
+<h2 style="clear:both" id="related-resources">Related Resources</h2>
 
-  </div>
-
-  <div class="resource-widget resource-flow-layout col-13"
+<div class="resource-widget resource-flow-layout col-13"
   data-query="collection:distribute/engage/gplus"
   data-sortorder="-timestamp"
   data-cardsizes="9x3"
-  data-maxresults="6">
-  </div>
+  data-maxresults="4">
 </div>
 
+
diff --git a/docs/html/distribute/engage/engage_toc.cs b/docs/html/distribute/engage/engage_toc.cs
index eb176f9..f8607f5 100644
--- a/docs/html/distribute/engage/engage_toc.cs
+++ b/docs/html/distribute/engage/engage_toc.cs
@@ -20,19 +20,25 @@
   <li class="nav-section">
     <div class="nav-section-header empty" style="font-weight:normal"><a href="<?cs
         var:toroot?>distribute/engage/easy-signin.html">
-        <span class="en">Make Signing In Easy</span></a>
+        <span class="en">Add Google Sign-in</span></a>
     </div>
   </li>
   <li class="nav-section">
     <div class="nav-section-header empty" style="font-weight:normal"><a href="<?cs
         var:toroot?>distribute/engage/deep-linking.html">
-        <span class="en">Deep Link to Bring Users Back</span></a>
+        <span class="en">Drive Usage with Search</span></a>
     </div>
   </li>
   <li class="nav-section">
     <div class="nav-section-header empty" style="font-weight:normal"><a href="<?cs
-        var:toroot?>distribute/engage/game-services.html">
-        <span class="en">Encourage Competition</span></a>
+        var:toroot?>distribute/engage/ads.html">
+        <span class="en">Drive engagement with Ads</span></a>
+    </div>
+  </li>
+  <li class="nav-section">
+    <div class="nav-section-header empty" style="font-weight:normal"><a href="<?cs
+        var:toroot?>distribute/engage/intents.html">
+        <span class="en">Use the Power of Intents</span></a>
     </div>
   </li>
   <li class="nav-section">
@@ -43,6 +49,12 @@
   </li>
   <li class="nav-section">
     <div class="nav-section-header empty" style="font-weight:normal"><a href="<?cs
+        var:toroot?>distribute/engage/game-services.html">
+        <span class="en">Encourage Competition</span></a>
+    </div>
+  </li>
+  <li class="nav-section">
+    <div class="nav-section-header empty" style="font-weight:normal"><a href="<?cs
         var:toroot?>distribute/engage/app-updates.html">
         <span class="en">Update Regularly</span></a>
     </div>
diff --git a/docs/html/distribute/engage/index.jd b/docs/html/distribute/engage/index.jd
index 2b103c3..165cc0e 100644
--- a/docs/html/distribute/engage/index.jd
+++ b/docs/html/distribute/engage/index.jd
@@ -1,5 +1,5 @@
 page.title=Engage & Retain Users
-page.metaDescription=Engaging and retaining active users is the key to success. Here are some resources to help you build an active user base.
+page.metaDescription=Engaging and retaining active users are the keys to success. Here are some resources to help you build an active user base.
 section.landing=true
 nonavpage=true
 
@@ -11,26 +11,21 @@
   techniques to keep your users coming back.
 </p>
 
-<div class="dynamic-grid">
-
   <div class="resource-widget resource-flow-layout landing col-16"
     data-query="collection:distribute/engagelanding"
-    data-cardSizes="9x6,9x6,6x6,6x6,6x6,9x6,9x6,6x6,6x6,6x6"
-    data-maxResults="10">
+    data-cardSizes="6x6"
+    data-maxResults="6">
+  </div>
+  <div class="resource-widget resource-flow-layout landing col-16"
+    data-query="collection:distribute/engagelanding"
+    data-cardSizes="6x3"
+    data-maxResults="20">
   </div>
 
-  <h3>Related Resources</h3>
+<!--  <h2>Related Resources</h2>
   <div class="resource-widget resource-flow-layout col-16"
-    data-query="type:youtube+tag:engagement"
-    data-sortOrder="-timestamp"
-    data-cardSizes="6x3"
+    data-query="tag:engagement"
+    data-sortOrder="random"
+    data-cardSizes="6x2"
     data-maxResults="3">
-  </div>
-  <div class="resource-widget resource-flow-layout col-16"
-    data-query="type:blog+tag:engagement"
-    data-sortdOrder="-timestamp"
-    data-cardSizes="6x3"
-    data-maxResults="3">
-  </div>
-
-</div>
\ No newline at end of file
+  </div> -->
diff --git a/docs/html/distribute/engage/intents.jd b/docs/html/distribute/engage/intents.jd
new file mode 100644
index 0000000..e8e49d9
--- /dev/null
+++ b/docs/html/distribute/engage/intents.jd
@@ -0,0 +1,39 @@
+page.title=Drive Discovery through Intents
+page.metaDescription=Make your app available to users as they perform tasks in other apps through Intents. 
+page.tags="engagement"
+@jd:body
+
+<p>Let the user choose <em>your app</em> to handle specific tasks from another app,
+such as sharing a picture, sending a message, or playing music. You can do this though
+Android's open Intents system. By adding Intent filters for the tasks your app can handle,
+you make it easy for the user to access your app’s features from other apps and from voice
+commands in Google Now.</p>
+
+<img src="{@docRoot}images/distribute/engage-intents.png">
+
+<p>By declaring Intent Filters in your app, it informs the Android OS about the
+actions it can perform for other apps. And in addition to making it easy for
+your users to make full use of your app’s features, it can help them discover
+features they didn’t know it supported.</p>
+
+<p>To learn about all the ways you can use Intents, check out <a
+href="{@docRoot}guide/components/intents-filters.html">Intents and Intent Filters</a>.</p>
+
+<h2 id=tips>Tips</h2>
+
+<ul>
+  <li> Identify and package any features your app can offer to other apps.
+  <li> Use the "view" intent to give users the option to open any links to your
+website within your app instead.
+  <li> Familiarize yourself with actions commonly accomplished with intents, such as
+sharing, so that you can focus on your app's core functionality and outsource
+common actions.
+</ul>
+
+<h2 style="clear:both" id="related-resources">Related Resources</h2>
+
+<div class="resource-widget resource-flow-layout col-13"
+  data-query="collection:distribute/engage/intents"
+  data-sortOrder="-timestamp"
+  data-cardSizes="9x3"
+  data-maxResults="6"></div>
diff --git a/docs/html/distribute/essentials/best-practices/apps.jd b/docs/html/distribute/essentials/best-practices/apps.jd
deleted file mode 100644
index bbac727..0000000
--- a/docs/html/distribute/essentials/best-practices/apps.jd
+++ /dev/null
@@ -1,260 +0,0 @@
-page.title=App Developer Best Practices
-page.image=/distribute/images/gp-app-practices.png
-page.metaDescription=Essential tips for launching successful apps in Google Play.
-@jd:body
-
-<div id="qv-wrapper"><div id="qv">
-<h2>Best Practices</h2>
-<ol>
-<li><a href="#essentials">Get the Essentials Right</a></li>
-<li><a href="#users">Get Users</a></li>
-<li><a href="#engage">Engage and Retain</a></li>
-<li><a href="#beyond">Beyond the Basics</a></li>
-<li><a href="#related-resources">Related Resources</a></li>
-</ol>
-</div></div>
-
-<p>The following best practices have enabled developers worldwide to build great, successful apps for Google Play.</p>
-
-<div class="headerLine">
-<h2 id="essentials">Get the Essentials Right</h2>
-</div>
-
-<h3>1. Make it Android</h3>
-
-<ul>
-  <li>
-  <p>
-    Build your apps to make best use of the unique Android features, such as
-    <a href="{@docRoot}distribute/engage/widgets.html">widgets</a>, <a href=
-    "{@docRoot}distribute/engage/notifications.html">rich notifications</a>,
-    <a href=
-    "http://android-developers.blogspot.com/2012/02/share-with-intents.html">sharing
-    through Intents</a>, and more.
-  </p>
-  </li>
-
-  <li>
-  <p>
-    Add the power of Google features your users already love, such as
-    <a href="https://developers.google.com/maps/documentation/android/">Google
-    Maps</a>, <a href="https://developers.google.com/drive/">Google
-    Drive</a>, and more, all with <a href=
-    "https://developers.google.com/+/mobile/android/sign-in">single sign
-    on</a>.
-  </p>
-  </li>
-</ul>
-
-<h3>
-  2. Make it quality
-</h3>
-
-<ul>
-  <li>
-  <p>
-    Make sure your apps follow the <a href=
-    "{@docRoot}distribute/essentials/quality/core.html">Core App Quality</a>
-    guidelines.
-  </p>
-  </li>
-
-  <li>
-  <p>
-    Create apps that are available on all form factors and screen sizes, by
-    following the <a href=
-    "{@docRoot}distribute/essentials/quality/tablets.html">Tablet App
-    Quality</a> guidelines.
-  </p>
-  </li>
-
-  <li>
-  <p>
-    Test and <a href=
-    "{@docRoot}distribute/essentials/optimizing-your-app.html">optimize your
-    quality</a> at every step and make use of the Google Play <a href=
-    "{@docRoot}distribute/googleplay/developer-console.html#alpha-beta">beta-testing</a>
-    and <a href=
-    "{@docRoot}distribute/googleplay/developer-console.html#staged-rollouts">staged
-    rollouts</a> features to test with users before launch.
-  </p>
-  </li>
-</ul>
-
-<div class="headerLine">
-  <h2 id="users">
-  Get Users
-  </h2>
-
-
-</div>
-
-<h3>
-  1. Build buzz
-</h3>
-
-<ul>
-  <li>
-  <p>
-    Create a great <a href="{@docRoot}distribute/users/your-listing.html">app
-    listing page</a> to showcase your apps and grab users’ attention. Don’t
-    forget to include a <a href=
-    "{@docRoot}distribute/engage/video.html">YouTube video</a>.
-  </p>
-  </li>
-
-  <li>
-  <p>
-    <a href="{@docRoot}distribute/tools/launch-checklist.html">Launch</a> on
-    multiple platforms simultaneously to maximize your reach.
-  </p>
-  </li>
-
-  <li>
-  <p>
-    Promote your apps with the official <a href=
-    "{@docRoot}distribute/tools/promote/badges.html">Google Play badge</a>
-    and <a href="{@docRoot}distribute/tools/promote/linking.html">link to
-    your products</a> on Google Play.
-  </p>
-  </li>
-
-  <li>
-  <p>
-    Build a community with social media, <a href=
-    "http://groups.google.com/">forums</a>, and <a href=
-    "http://plus.google.com">communities</a> to get and keep users talking.
-  </p>
-  </li>
-</ul>
-
-<h3>
-  2. Optimize for great ratings
-</h3>
-
-<ul>
-  <li>
-  <p>
-    Get to <a href="{@docRoot}distribute/users/know-your-user.html">know your
-    users</a>, listen to and <a href=
-    "{@docRoot}distribute/engage/app-updates.html">update your apps</a> from
-    their feedback.
-  </p>
-  </li>
-
-  <li>
-  <p>
-    Focus on your strength markets first, get these right before expanding.
-  </p>
-  </li>
-</ul>
-
-<div class="headerLine">
-  <h2 id="engage">
-  Engage and Retain
-  </h2>
-
-
-</div>
-
-<h3>
-  1. Keep users coming back
-</h3>
-
-<ul>
-  <li>
-  <p>
-    Use <a href="{@docRoot}google/play/billing/index.html">Google Play In-app
-    Billing</a> to offer subscriptions to extended features.
-  </p>
-  </li>
-
-  <li>
-  <p>
-    Hold competitions and offer promotions, then announce them through
-    <a href="{@docRoot}design/patterns/notifications.html">notifications</a>.
-  </p>
-  </li>
-</ul>
-
-<h3>
-  2. Earn users’ love
-</h3>
-
-<ul>
-  <li>
-  <p>
-    <a href=
-    "http://android-developers.blogspot.com/2013/05/all-google-play-developers-can-now.html">
-    Respond to reviews</a> and get valuable feedback from the community
-    you've built.
-  </p>
-  </li>
-
-  <li>
-  <p>
-    <a href=
-    "http://android-developers.blogspot.com/2013/10/improved-app-insight-by-linking-google.html">
-    Measure</a> your campaigns to see what is driving users to install your
-    apps.
-  </p>
-  </li>
-
-  <li>
-  <p>
-    <a href=
-    "{@docRoot}distribute/essentials/optimizing-your-app.html#measuring-analyzing-responding">
-    Analyze in-app use</a> to steer content updates and prolong the life of
-    your apps.
-  </p>
-  </li>
-</ul>
-
-<div class="headerLine">
-  <h2 id="beyond">
-  Beyond the Basics
-  </h2>
-
-
-</div>
-
-<ul>
-  <li>
-  <p>
-    After you’ve launched in your market of strength, <a href=
-    "{@docRoot}distribute/users/expand-to-new-markets.html">expand into other
-    markets</a> strategically and <a href=
-    "{@docRoot}distribute/tools/localization-checklist.html">localize</a>
-    your apps as you go.
-  </p>
-  </li>
-
-  <li>
-  <p>
-    Keep users engaged, and stay ahead of the competition, by continually
-    <a href=
-    "{@docRoot}distribute/essentials/optimizing-your-app.html">optimizing
-    your apps</a> to offer new and better features, or retire those that
-    users aren’t using.
-  </p>
-  </li>
-
-  <li>
-  <p>
-    Build educational apps: learn <a href=
-    "{@docRoot}distribute/googleplay/edu/start.html">how to make apps for
-    Google Play for Education</a>.
-  </p>
-  </li>
-</ul>
-
-<div class="headerLine">
-<h2 id="related-resources">Related Resources</h2>
-</div>
-
-<div class="resource-widget resource-flow-layout col-13"
-  data-query="collection:distribute/toolsreference/bestpractices/apps"
-  data-sortOrder="-timestamp"
-  data-cardSizes="9x3,9x3"
-  data-maxResults="6"></div>
-
diff --git a/docs/html/distribute/essentials/best-practices/games.jd b/docs/html/distribute/essentials/best-practices/games.jd
deleted file mode 100644
index c4ce66e..0000000
--- a/docs/html/distribute/essentials/best-practices/games.jd
+++ /dev/null
@@ -1,259 +0,0 @@
-page.title=Game Developer Best Practices
-page.image=/distribute/images/gp-games-practices.png
-page.metaDescription=Essential tips for launching successful games in Google Play.
-
-@jd:body
-
-<div id="qv-wrapper"><div id="qv">
-<h2>Best Practices</h2>
-<ol>
-<li><a href="#users">Get Users</a></li>
-<li><a href="#engage">Engage and Retain</a></li>
-<li><a href="#beyond">Beyond the Basics</a></li>
-<li><a href="#related-resources">Related Resources</a></li>
-</ol>
-</div></div>
-
-<p>
-  The following best practices have enabled developers worldwide to build
-  great, successful games for Google Play.
-</p>
-
-<div class="headerLine">
-  <h2 id="users">
-  Get Users
-  </h2>
-
-
-</div>
-
-<h3>
-  1. Optimize for great ratings
-</h3>
-
-<ul>
-  <li>
-  <p>
-    <a href=
-    "{@docRoot}distribute/googleplay/developer-console.html#alpha-beta">Beta
-    test</a> to ensure your games are ready and poised for great ratings.
-  </p>
-  </li>
-
-  <li>
-  <p>
-    Optimize graphics, frame rates, and responsiveness with the <a href=
-    "http://android-developers.blogspot.com/2013/09/using-hardware-scaler-for-performance.html">
-    Hardware Scaler</a> and <a href=
-    "{@docRoot}training/graphics/opengl/index.html">OpenGL ES</a>.
-  </p>
-  </li>
-
-  <li>
-  <p>
-    Be sure your APK is small, then provide game content through over-the-air
-    downloads.
-  </p>
-  </li>
-</ul>
-
-<h3>
-  2. Build buzz
-</h3>
-
-<ul>
-  <li>
-  <p>
-    Build a community with social media, <a href=
-    "{@docRoot}distribute/users/build-community.html">communities</a> to get
-    and keep users talking.
-  </p>
-  </li>
-
-  <li>
-  <p>
-    Promote your games with official <a href=
-    "{@docRoot}distribute/tools/promote/badges.html">Google Play badges</a>
-    and <a href="{@docRoot}distribute/tools/promote/linking.html">links to
-    your products</a> on Google Play.
-  </p>
-  </li>
-
-  <li>
-  <p>
-    If you ship on multiple platforms, doing so at the same time can maximize
-    your marketing impact.
-  </p>
-  </li>
-</ul>
-
-<h3>
-  3. Get Visibility
-</h3>
-
-<ul>
-  <li>
-  <p>
-    First impressions count: <a href=
-    "{@docRoot}distribute/users/your-listing.html">highlight</a> the game's
-    best features in screenshots, videos, and description.
-  </p>
-  </li>
-
-  <li>
-  <p>
-    Integrate Google Play Game Services, so your game is displayed in the
-    <a href=
-    "https://play.google.com/store/apps/details?id=com.google.android.play.games">
-    Google Play Games App</a>.
-  </p>
-  </li>
-</ul>
-
-<div class="headerLine">
-  <h2 id="engage">
-  Engage and Retain
-  </h2>
-
-
-</div>
-
-<h3>
-  1. Keep users coming back
-</h3>
-
-<ul>
-  <li>
-  <p>
-    <a href=
-    "https://developers.google.com/games/services/common/concepts/achievements">
-    Achievements</a>, <a href=
-    "https://developers.google.com/games/services/common/concepts/leaderboards">
-    leaderboards</a>, <a href=
-    "https://developers.google.com/games/services/common/concepts/realtimeMultiplayer">
-    multiplayer</a>, and <a href=
-    "https://developers.google.com/games/services/common/concepts/cloudsave">cloud
-    save</a> help engage users and bring them back.
-  </p>
-  </li>
-
-  <li>
-  <p>
-    Hold tournaments and offer promotions, then announce them through
-    <a href="{@docRoot}design/patterns/notifications.html">notifications</a>.
-  </p>
-  </li>
-
-  <li>
-  <p>
-    Sign in users early, then automatically. Before their first sign-in, save
-    progress locally.
-  </p>
-  </li>
-</ul>
-
-<h3>
-  2. Give users a reason to invest their money
-</h3>
-
-<ul>
-  <li>
-  <p>
-    A majority of the top grossing games use in-app purchases. Use them to
-    unlock content and allow players to enhance their game play.
-  </p>
-  </li>
-
-  <li>
-  <p>
-    <a href="{@docRoot}google/play/billing/index.html">Google Play In-app
-    Billing</a> makes purchasing easy with several forms of payment.
-  </p>
-  </li>
-
-  <li>
-  <p>
-    Provide content updates regularly to give users limited edition items to
-    win or purchase.
-  </p>
-  </li>
-</ul>
-
-<h3>
-  3. Earn players’ love
-</h3>
-
-<ul>
-  <li>
-  <p>
-    <a href=
-    "http://android-developers.blogspot.com/2013/10/improved-app-insight-by-linking-google.html">
-    Measure</a> your campaigns to see what’s driving quality users to install
-    your games.
-  </p>
-  </li>
-
-  <li>
-  <p>
-    <a href=
-    "{@docRoot}distribute/essentials/optimizing-your-app.html#measuring-analyzing-responding">
-    Analyze in-game use</a> to steer content updates and prolong the life of your
-    games.
-  </p>
-  </li>
-
-  <li>
-  <p>
-    <a href=
-    "http://android-developers.blogspot.com/2013/05/all-google-play-developers-can-now.html">
-    Respond to reviews</a> and get valuable feedback from the community
-    you’ve built.
-  </p>
-  </li>
-</ul>
-
-<div class="headerLine">
-  <h2 id="beyond">
-  Beyond the Basics
-  </h2>
-
-
-</div>
-
-<ul>
-  <li>
-  <p>
-    After you've launched in your market of strength, <a href=
-    "{@docRoot}distribute/users/expand-to-new-markets.html">expand into other
-    markets</a> strategically and <a href=
-    "{@docRoot}distribute/tools/localization-checklist.html">localize</a>
-    your apps as you go.
-  </p>
-  </li>
-
-  <li>
-  <p>
-    Provide content <a href=
-    "{@docRoot}distribute/engage/app-updates.html">updates on a regular
-    basis</a> to keep users engaged.
-  </p>
-  </li>
-
-  <li>
-  <p>
-    Building educational games? See the <a href=
-    "{@docRoot}distribute/essentials/gpfe-guidelines.html">Education
-    Guidelines</a>.
-  </p>
-  </li>
-</ul>
-
-<div class="headerLine">
-<h2 id="related-resources">Related Resources</h2>
-</div>
-
-<div class="resource-widget resource-flow-layout col-13"
-  data-query="collection:distribute/toolsreference/bestpractices/games"
-  data-sortOrder="-timestamp"
-  data-cardSizes="9x3,9x3"
-  data-maxResults="6"></div>
diff --git a/docs/html/distribute/essentials/essentials_toc.cs b/docs/html/distribute/essentials/essentials_toc.cs
index fe3fc87..baca18f 100644
--- a/docs/html/distribute/essentials/essentials_toc.cs
+++ b/docs/html/distribute/essentials/essentials_toc.cs
@@ -34,18 +34,7 @@
         </a>
     </div>
   </li>
-  <li class="nav-section">
-    <div class="nav-section-header empty" style="font-weight:normal"><a href="<?cs var:toroot?>distribute/essentials/best-practices/apps.html">
-          <span class="en">App Best Practices</span>
-        </a>
-    </div>
-  </li>
-  <li class="nav-section">
-    <div class="nav-section-header empty" style="font-weight:normal"><a href="<?cs var:toroot?>distribute/essentials/best-practices/games.html">
-          <span class="en">Game Best Practices</span>
-        </a>
-    </div>
-  </li>
+</ul>
 
 
 <script type="text/javascript">
diff --git a/docs/html/distribute/essentials/index.jd b/docs/html/distribute/essentials/index.jd
index ca5442a..d5c3397 100644
--- a/docs/html/distribute/essentials/index.jd
+++ b/docs/html/distribute/essentials/index.jd
@@ -12,23 +12,17 @@
   process of monitoring feedback and making improvement after launch.
 </p>
 
-<div class="dynamic-grid">
 <div class="resource-widget resource-flow-layout landing col-16"
   data-query="collection:distribute/essentials"
   data-cardSizes="6x6"
   data-maxResults="6">
 </div>
 
-<h3>Related resources</h3>
+<!-- <h2>Related resources</h2>
 
 <div class="resource-widget resource-flow-layout col-16"
-  data-query="type:blog+tag:quality"
-  data-cardSizes="6x3"
-  data-maxResults="3">
-</div>
-<div class="resource-widget resource-flow-layout col-16"
-  data-query="type:youtube+tag:appquality"
-  data-cardSizes="6x3"
-  data-maxResults="3">
-</div>
-</div>
\ No newline at end of file
+  data-query="tag:quality"
+  data-cardSizes="6x2"
+  data-maxResults="3"
+  data-sortOrder="random">
+</div> -->
diff --git a/docs/html/distribute/googleplay/about.jd b/docs/html/distribute/googleplay/about.jd
index c25a9cf..2652046 100644
--- a/docs/html/distribute/googleplay/about.jd
+++ b/docs/html/distribute/googleplay/about.jd
@@ -2,7 +2,7 @@
 meta.tags="visibility, growth, distributing"
 page.tags="play, apps, distributing, publishing"
 page.metaDescription=Billons of downloads a month and growing. Get your apps in front of users at Google's scale.
-page.image=/distribute/images/about-play.jpg
+page.image=images/cards/google-play_2x.png
 
 @jd:body
 
@@ -369,4 +369,4 @@
   data-sortOrder="-timestamp"
   data-cardSizes="9x3"
   data-maxResults="4"></div>
-    </div>
\ No newline at end of file
+    </div>
diff --git a/docs/html/distribute/googleplay/auto.jd b/docs/html/distribute/googleplay/auto.jd
index af24a54..1f5915b 100644
--- a/docs/html/distribute/googleplay/auto.jd
+++ b/docs/html/distribute/googleplay/auto.jd
@@ -1,4 +1,4 @@
-page.title=Distributing to Android Auto
+page.title=Distribute to Android Auto
 page.image=/design/auto/images/auto-overview.png
 meta.tags="auto", "publish", "quality"
 page.tags="auto", "publish", "googleplay"
diff --git a/docs/html/distribute/googleplay/cardboard.jd b/docs/html/distribute/googleplay/cardboard.jd
new file mode 100644
index 0000000..d5965d1
--- /dev/null
+++ b/docs/html/distribute/googleplay/cardboard.jd
@@ -0,0 +1,50 @@
+page.title=Build VR with Google Cardboard
+page.metaDescription=Build apps and games with VR, for a viewer anyone can buy.
+page.tags=vr, carboard, games
+@jd:body
+
+<p>
+  Virtual reality promises to transform the way players view games, taking them from a
+  flat world into the realm of 3D. In fact, any application that provides
+  a way to visually explore has the possibility to offer users more immersive experiences
+  with VR &mdash; like a virtual tour of a famous landmark or a way to visualise atoms in a
+  chemical compound.
+</p>
+
+<div>
+<img src="{@docRoot}images/distribute/cardboard.jpg" />
+</div>
+
+<p>
+  Google Cardboard and the Cardboard SDK provides you with a practical, accessible way to
+  start developing VR, and your users with a simple, fun, and natural way to experience your
+  VR apps and games.
+</p>
+
+<p>
+  Order or make your own <a href="https://www.google.com/get/cardboard/get-cardboard.html">
+  Viewer that works with Google Cardboard</a>. And then find out more about <a
+  href="https://developers.google.com/cardboard/">developing with the Cardboard SDK</a>.
+</p>
+
+<h2 id="tips">Tips</h2>
+<ul>
+  <li>Review our <a
+href="http://www.google.com/design/spec-vr/designing-for-google-cardboard/a-new-dimension.html">
+  best practices for designing Cardboard apps.</li>
+  <li>Check out our <a href="http://stackoverflow.com/questions/tagged/google-cardboard">Stack
+  Overflow tag</a> to find and ask questions about Cardboard development.</li>
+  <li>Join the <a href="https://plus.google.com/communities/111524380182206513071">Cardboard
+  &amp; VR Developers community</a> on Google+ to stay up-to-date on Cardboard and
+  connect with other developers.</li>
+</ul>
+
+<h2 style="clear:both" id="related-resources">Related Resources</h2>
+
+<div class="resource-widget resource-flow-layout col-13"
+  data-query="collection:distribute/googleplay/cardboard"
+  data-sortOrder="-timestamp"
+  data-cardSizes="9x3"
+  data-maxResults="6"></div>
+
+
diff --git a/docs/html/distribute/googleplay/cast.jd b/docs/html/distribute/googleplay/cast.jd
new file mode 100644
index 0000000..55bc1a9
--- /dev/null
+++ b/docs/html/distribute/googleplay/cast.jd
@@ -0,0 +1,48 @@
+page.title=Stream with Google Cast
+page.metaDescription=Let users stream your video and audio content to their TVs and speakers.
+page.tags=cast, video, chromecast
+@jd:body
+
+<p>
+  With Google Cast
+  you make it easy for users to include your content as part of their viewing
+  on TV and listening on audio systems. All they need is an Android TV, a TV with a Chromecast plugged in,
+  or a Cast for audio device connected to their audio system.
+</p>
+
+<div>
+<img src="{@docRoot}images/distribute/cast.jpg">
+</div>
+
+<p>
+  Google Cast is a great way to add value and convenience to your content
+  consumption apps, and extend their engagement with your users.
+</p>
+
+<p>
+  <a href="https://developers.google.com/cast/">Find out how to get your app Google
+  Cast-ready</a>. 
+</p>
+
+<h2 id="tips">Tips</h2>
+<ul>
+  <li>Cast devices can be low-power devices with memory, CPU, and GPU limitations,
+  so the receiver application should be as lightweight as possible.</li>
+  <li>User interaction should only take place on the Cast sender (phone, tablet,
+  or Chrome browser), not the Cast receiver.</li>
+  <li>While content is loading, provide animated loading indicators and use transitions
+  to help make things feel faster on the Cast sender interface.</li>
+  <li>Let users know your app is “Google Card-enabled” in your store listing and use
+  the <a href="https://developers.google.com/cast/docs/ux_guidelines#brand-guidelines">Google
+  Cast badge</a> on your website and marketing materials.</li>
+</ul>
+
+<h2 style="clear:both" id="related-resources">Related Resources</h2>
+
+<div class="resource-widget resource-flow-layout col-13"
+  data-query="collection:distribute/googleplay/cast"
+  data-sortOrder="-timestamp"
+  data-cardSizes="9x3"
+  data-maxResults="6"></div>
+
+
diff --git a/docs/html/distribute/googleplay/developer-console.jd b/docs/html/distribute/googleplay/developer-console.jd
index f5b3ac6..748c1d1 100644
--- a/docs/html/distribute/googleplay/developer-console.jd
+++ b/docs/html/distribute/googleplay/developer-console.jd
@@ -1,6 +1,6 @@
 page.title=Developer Console
 page.metaDescription=Learn about the Developer Console, your home for app publishing on Google Play.
-page.image=/distribute/images/developer-console.jpg
+page.image=images/cards/dev-console_2x.jpg
 Xnonavpage=true
 
 @jd:body
@@ -600,4 +600,4 @@
   data-sortOrder="-timestamp"
   data-cardSizes="9x3"
   data-maxResults="6"></div>
-  </div>
\ No newline at end of file
+  </div>
diff --git a/docs/html/distribute/googleplay/edu/about.jd b/docs/html/distribute/googleplay/edu/about.jd
index 469b899..36a67b26 100644
--- a/docs/html/distribute/googleplay/edu/about.jd
+++ b/docs/html/distribute/googleplay/edu/about.jd
@@ -33,18 +33,20 @@
       <img src="{@docRoot}images/gpfe-developer.png">
     </div>
 
-    <h3>
-      FOR DEVELOPERS
-    </h3>
-    <b>Get discovered</b>
-    <p>
-      With Google Play for Education, teachers and administrators can browse
+
+
+<div class="wrap">
+  <div class="cols" style="margin-top:2em;">
+    <div class="col-6of12">
+      <h2 id="maximize_your_ad_revenue">For developers</h2>
+      <img src="{@docRoot}images/gpfe-developer.png">
+      <h5>Get discovered</h5>
+      <p>With Google Play for Education, teachers and administrators can browse
       content by curriculum, grade, and standard &mdash; discovering the right
       content for their students. If your app offers an exciting new way to
       learn sixth grade algebra, math educators will be able to find, purchase,
-      and distribute your app to their classes in a few clicks.
-    </p>
-    <b>Reach more schools and students</b>
+      and distribute your app to their classes in a few clicks.</p>
+      <h5>Reach more schools and students</h5>
     <p>
       Millions of students, faculty, and staff are using Google Apps for
       Education and other Google services. Many of these schools are excited to
@@ -52,55 +54,52 @@
       looking to bring your apps into their classrooms, especially apps using
       Google sign-on.
     </p>
-    <b>Monetize effectively</b>
+      <h5>Monetize effectively</h5>
     <p>
       With Google Play for Education, educators are able to make high-volume
       purchases using standard institutional payment mechanisms and then
       distribute apps to the students who need them — whether it’s a class of
       20 or a district of 20,000.
     </p>
-  </div>
-
-  <div style="width:48%; margin-left:2%; float:left;">
-    <div class="centered-full-image">
-      <img src="{@docRoot}images/gpfe-educator.png">
     </div>
 
-    <h3>
-      FOR EDUCATORS
-    </h3>
-    <b>Android tablets in the classroom</b>
+
+    <div class="col-6of12">
+      <h2 id="maximize_your_ad_revenue">For educators</h2>
+      <img src="{@docRoot}images/gpfe-educator.png">
+      <h5>    <b>Android tablets in the classroom</h5>
     <p>
       Google Play for Education brings the innovation of Android technology
       into classrooms. School districts can set up and deploy large numbers of
       devices in just minutes or hours, rather than days.
     </p>
-    <b>Curriculum-based discovery</b>
+      <h5>Curriculum-based discovery</h5>
     <p>
       Powerful browsing tools let educators quickly discover apps, videos, and
       other content—with many recommended by teachers and categorized according
       to familiar Core Curriculum standards.
     </p>
-    <b>Bulk purchase with institutional payment</b>
+      <h5>Bulk purchase with institutional payment</h5>
     <p>
       Convenient purchasing and delivery tools let educators buy apps in bulk,
       using purchase orders and other payment methods that are easy for schools
       to manage.
     </p>
-    <b>Over-the-air delivery to student devices</b>
+      <h5>Over-the-air delivery to student devices</h5>
     <p>
       After finding apps they want, educators can push them instantly to
       student devices over the air. They can send the apps to individuals or
       groups of any size, across classrooms, schools, or even districts.
     </p>
+      <h5>Business-wide licensing</h5>
+      <p>Paid apps are licensed to your organization, enabling you to move paid apps between users as users needs change and staff turns over. </p>
+    </div>
   </div>
 </div>
 
-<p style="clear:both">
-</p>
-<div class="headerLine">
+
 <h2 id="related-resources">Related Resources</h2>
-</div>
+
 
 <div class="dynamic-grid">
 
diff --git a/docs/html/distribute/googleplay/families/about.jd b/docs/html/distribute/googleplay/families/about.jd
index c542e0f..5a15490 100644
--- a/docs/html/distribute/googleplay/families/about.jd
+++ b/docs/html/distribute/googleplay/families/about.jd
@@ -7,15 +7,12 @@
 @jd:body
 
 <p>
-  In several weeks, a new family-focused experience on Google Play will give
-  users new ways to browse, search, and discover high quality apps and games
-  for their families.
+  If you got great apps targeting kids and/or families, the family-focused experience
+  on Google Play is a great way to make them discoverable by parents.
 </p>
 
-<p>
-  To support a more family-friendly store, developers are invited to opt-in
-  family-focused apps and games to the new Designed for Families program. Apps
-  that meet the <a href=
+<p>Developers are invited to opt-in these apps and games to the new Designed for
+  Families program. Apps that meet the <a href=
   "https://support.google.com/googleplay/android-developer/answer/6184502">program
   requirements</a> will be shown in the new family experience so that
   parents can find suitable, trusted, high-quality apps and games more easily.
@@ -31,11 +28,62 @@
   store.
 </p>
 
+<h2 id="benefits">Benefits</h2>
+
+<p>
+  By opting-in to Designed for Families, parents can easily find your family-friendly
+  content on the Google Play store however they are accessing it.
+</p>
+
+<h3>Search</h3> 
+
+<p>
+  Only content opted-in to the Designed for Families program will show up in search results
+  from any of the family sections. This is a huge boost to this content as a majority of
+  searches on the Play Store containing the terms “apps for” or “games for” are related to
+  kids.
+</p>
+
+<h3>Browse</h3>
+
+<p>
+  Family sections within Apps, Games, Movies & TV and Music provide enhanced discovery for
+  parents. These sections act as true home pages and contain unique categories tailored to kids
+  content, specific age-based categories, and merchandised content.
+</p>
+
+<h3>Character pages</h3>
+
+<p>
+  All content for particular popular characters can now be found in one place on character pages,
+  including apps, games, movies, tv, and books. It’s a powerful way to promote children’s brands
+  across content, and allows you to reach a highly relevant and targeted audience. Character
+  pages are also a way to alleviate concerns around IP protection, since only properly licensed
+  content is on these pages. 
+</p>
+
+<h3>Merchandising</h3>
+
+<p>
+  The family sections have their own merchandised content, with new opportunities for featuring
+  on the home pages of the family sections and and within the age-specific home pages. The pages
+  are curated to ensure quality and limited to only content opted-in to Designed for Families
+  and appropriate for specific age ranges.
+</p>
+
+<h3>Badging</h3>
+
+<p>
+  Apps opted-in to Designed for Families will receive family-friendly badges, which are a marker
+  of quality and signal to parents that apps are suitable for users of specific ages groups.
+  Clicking on a badge also leads you to other apps and games with that badge. 
+</p>
+
 <h2 id="elibibility">Eligibility</h2>
 
 <p>
-  Apps in the family-friendly experience on Google Play will be more
-  discoverable by parents and families, who expect the apps to be age
+  Apps in the family-friendly experience on Google Play are more
+  discoverable by parents and families, who expect the apps to appeal to kids under 13 and be age
   appropriate. The Designed for Families program is designed to be inclusive of
   apps that are made for kids as well as those that can be enjoyed by the
   entire family. To address this audience, there are specific guidelines and
diff --git a/docs/html/distribute/googleplay/families/faq.jd b/docs/html/distribute/googleplay/families/faq.jd
index c6fbf86..363dc91 100644
--- a/docs/html/distribute/googleplay/families/faq.jd
+++ b/docs/html/distribute/googleplay/families/faq.jd
@@ -1,4 +1,4 @@
-page.title=Frequently Asked Questions
+page.title=Google Play for Families FAQ
 meta.tags="families", "guidelines", "quality"
 page.tags="families", "addendum"
 page.metaDescription=Questions and answers about Designed for Families
@@ -78,14 +78,44 @@
   </dd>
 
   <dt>
+    If I distribute my apps globally, do I need to provide a translated version
+    of my privacy policy for each separate language APK?
+  </dt>
+  <dd>
+    No, you do not need to translate your privacy policy. However, if you
+    distribute your apps in a few select countries, it is advised that you do
+    translate your privacy policy. 
+  </dd>
+
+  <dt>
+    How do I decide what age group to select?
+  </dt>
+
+  <dd>
+    Age groups are: Ages 5 & Under, Ages 6-8, and Ages 9-12. If you select one of these
+    age groups, your content must be appropriate for children in the age ranges. You may
+    select the General Audience category only select if your app targets both children
+    under 13 and adults.
+  </dd>
+
+  <dt>
+    What will be different about my app if I select the General Audience category?
+  </dt>
+
+  <dd>
+    There is not a dedicated section for General Audience apps within the family sections.
+    In addition,  you can use Google+ Sign-in or Google Play Game Services as an optional
+    feature, but child users must be able to access the app or game in its entirety
+    without signing into Google+ or Google Play Games Service.
+  </dd>
+
+  <dt>
     How many age groups can I select?
   </dt>
 
   <dd>
-    You can select up to two adjacent age groups. Age groups are: Ages 5 &
-    Under, Ages 6-8, and Ages 9-12. However, if your app targets audiences
-    comprised of children and older audiences, you must select the <em>General
-    Audience</em> category.
+    You can select up to two adjacent age groups only if your app is appropriate for
+    multiple age groups.
   </dd>
 
   <dt>
@@ -238,12 +268,12 @@
 
 <dl>
   <dt>
-    Can you give me more details on the advertising policies for Designed for
+    Are ads allowed? Can you give me more details on the advertising policies for Designed for
     Families?
   </dt>
 
   <dd>
-    Read the <a href=
+    Yes, ads are allowed as long as the adhere to the <a href=
     "https://support.google.com/googleplay/android-developer/answer/6184502#ads">
     ads policy for Designed for Families</a>.
   </dd>
@@ -258,6 +288,23 @@
   </dd>
 
   <dt>
+    What about full page ads?
+  </dt>
+
+  <dd>
+    You may use full page ads as long as the ad can be dismissed without the user having to
+    interact with it in other ways.
+
+  <dt>
+    Am I allowed to use house/first party ads and product placements within my app?
+  </dt>
+
+  <dd>
+    House ads are allowed, but they must comply with <a
+    href="https://support.google.com/googleplay/android-developer/answer/6184502#ads">ads policies</a>. 
+  </dd>
+
+  <dt>
     How do I know that my ad network complies with the advertising
     policies for Designed for Families?
   </dt>
@@ -328,6 +375,17 @@
     a different category in the Play store. Apps that have not selected another
     category will be assigned to the Casual Games category.
   </dd>
+
+  <dt>
+    How can users find character pages?
+  </dt>
+
+  <dd>
+    Character pages are found through the “Popular Characters” tab within each of
+    the verticals. They can also be accessed from character-specific badges on details
+    pages of character content.
+  </dd>
+
 </dl>
 
 <div class="paging-links" style="padding-top:.75em;">
diff --git a/docs/html/distribute/googleplay/families/start.jd b/docs/html/distribute/googleplay/families/start.jd
index af4eb3a..0e773bd 100644
--- a/docs/html/distribute/googleplay/families/start.jd
+++ b/docs/html/distribute/googleplay/families/start.jd
@@ -30,7 +30,7 @@
   Now that your app is ready to publish, you can opt-in to Designed for
   Families directly from the <a href=
   "https://play.google.com/apps/publish/">Developer Console</a>. Opt-in means
-  that you want your app to be made available on the new family-friendly
+  that you want your app to be made available on the family-friendly
   experience on Google Play in addition to the category you’ve selected on
   the Google Play Store.
 </p>
@@ -64,9 +64,10 @@
   style="border:2px solid #ddd;margin:1em 0;"></li>
   <li>Choose your target age groups from: Ages 5 & Under, Ages 6 to 8, Ages 9
   to 12, or General Audience (for apps which target children and older
-  audiences). If your app targets more than one age group, you can choose up to
-  two adjacent age groups. Apps with an ESRB 10+ rating can only choose an
-  age target of 9-12 or General Audience.
+  audiences). You can choose up to two adjacent age groups only if your app
+  targets more than one age group. Apps with an ESRB 10+ rating can only choose an
+  age target of 9-12 or General Audience. <!--Apps that are found to be inappropriate
+  for the age groups selected will -->
   </li>
 
   <li>Choose a category for your app for the new family-focused experience on
@@ -99,7 +100,7 @@
 <p>
   If you opt-in an app that's already published on Google Play and it doesn't
   meet the program requirements, it will remain available to all users but won't
-  be added to the new family experience until you update the app to meet the
+  be added to the family experience until you update the app to meet the
   program requirements.
 </p>
 
diff --git a/docs/html/distribute/googleplay/googleplay_toc.cs b/docs/html/distribute/googleplay/googleplay_toc.cs
index 78a3731..e348ee2 100644
--- a/docs/html/distribute/googleplay/googleplay_toc.cs
+++ b/docs/html/distribute/googleplay/googleplay_toc.cs
@@ -7,7 +7,7 @@
   </li>
   <li class="nav-section">
     <div class="nav-section-header empty" style="font-weight:normal"><a href="<?cs var:toroot?>distribute/googleplay/start.html">
-            <span class="en">Get Started with Publishing</span>
+            <span class="en">Get Started <br />with Publishing</span>
           </a>
     </div>
   </li>
@@ -19,25 +19,37 @@
   </li>
   <li class="nav-section">
     <div class="nav-section-header empty" style="font-weight:normal"><a href="<?cs var:toroot?>distribute/googleplay/guide.html">
-          <span class="en">Finding Success on Google Play</span>
+    <span class="en">Find Success on <span style="white-space:nowrap">Google Play</span></span>
         </a>
     </div>
   </li>
   <li class="nav-section">
     <div class="nav-section-header empty" style="font-weight:normal"><a href="<?cs var:toroot?>distribute/googleplay/wear.html">
-          <span class="en">Distributing to <span style="white-space:nowrap">Android Wear</span></span>
+    <span class="en">Distribute to <br /><span style="white-space:nowrap">Android Wear</span></span>
         </a>
     </div>
   </li>
   <li class="nav-section">
     <div class="nav-section-header empty" style="font-weight:normal"><a href="<?cs var:toroot?>distribute/googleplay/tv.html">
-          <span class="en">Distributing to <span style="white-space:nowrap">Android TV</span></span>
+          <span class="en">Distribute to <br /><span style="white-space:nowrap">Android TV</span></span>
         </a>
     </div>
   </li>
   <li class="nav-section">
     <div class="nav-section-header empty" style="font-weight:normal"><a href="<?cs var:toroot?>distribute/googleplay/auto.html">
-          <span class="en">Distributing to <span style="white-space:nowrap">Android Auto</span></span>
+          <span class="en">Distribute to <br /><span style="white-space:nowrap">Android Auto</span></span>
+        </a>
+    </div>
+  </li>
+  <li class="nav-section">
+    <div class="nav-section-header empty" style="font-weight:normal"><a href="<?cs var:toroot?>distribute/googleplay/cast.html">
+          <span class="en">Stream Your Content <span style="white-space:nowrap">with Cast</span></span>
+        </a>
+    </div>
+  </li>
+  <li class="nav-section">
+    <div class="nav-section-header empty" style="font-weight:normal"><a href="<?cs var:toroot?>distribute/googleplay/cardboard.html">
+          <span class="en"><span style="white-space:nowrap">Build VR with Google Cardboard</span></span>
         </a>
     </div>
   </li>
@@ -72,6 +84,12 @@
         </a></li>
     </ul>
   </li>
+  <li class="nav-section">
+    <div class="nav-section-header empty" style="font-weight:normal"><a href="<?cs var:toroot?>distribute/googleplay/work/about.html">
+          <span class="en"><span style="white-space:nowrap">Google Play for Work</span></span>
+        </a>
+    </div>
+  </li>
 </ul>
 <script type="text/javascript">
 <!--
diff --git a/docs/html/distribute/googleplay/index.jd b/docs/html/distribute/googleplay/index.jd
index b25f6b75..1908e01 100644
--- a/docs/html/distribute/googleplay/index.jd
+++ b/docs/html/distribute/googleplay/index.jd
@@ -1,4 +1,5 @@
 page.title=Google Play
+page.image=images/cards/program-edu_2x.jpg
 section.landing=true
 nonavpage=true
 
@@ -10,9 +11,7 @@
   help you gain traction in the marketplace.</span>
 </p>
 
-<div class="dynamic-grid">
-
-  <h3>Overview</h3>
+  <h2>Overview</h2>
 
   <div class="resource-widget resource-flow-layout landing col-16"
     data-query="collection:distribute/gp/gplanding"
@@ -21,25 +20,20 @@
     data-maxResults="3">
   </div>
 
-  <h3>Distribute Your Apps</h3>
+  <h2>Distribute Your Apps</h2>
 
   <div class="resource-widget resource-flow-layout landing col-16"
     data-query="collection:distribute/gp/gpfelanding"
     data-cardSizes="6x6"
-    data-maxResults="5">
+    data-maxResults="10">
   </div>
 
-  <h3>Related resources</h3>
+<!--  <h2>Related resources</h2>
 
   <div class="resource-widget resource-flow-layout col-16"
-    data-query="type:youtube+tag:growth"
-    data-cardSizes="6x3"
-    data-maxResults="3">
-  </div>
-  <div class="resource-widget resource-flow-layout col-16"
-    data-query="type:blog+tag:googleplay"
-    data-cardSizes="6x3"
-    data-maxResults="3">
-  </div>
+    data-query="tag:growth"
+    data-cardSizes="6x2"
+    data-maxResults="3"
+    data-sortOrder="random">
+  </div> -->
 
-</div>
diff --git a/docs/html/distribute/googleplay/tv.jd b/docs/html/distribute/googleplay/tv.jd
index 37cbe26..a35edbc 100644
--- a/docs/html/distribute/googleplay/tv.jd
+++ b/docs/html/distribute/googleplay/tv.jd
@@ -1,4 +1,4 @@
-page.title=Distributing to Android TV
+page.title=Distribute to Android TV
 page.image=/design/tv/images/atv-home.jpg
 meta.tags="tv", "publish", "quality"
 page.tags="tv", "publish", "googleplay"
diff --git a/docs/html/distribute/googleplay/wear.jd b/docs/html/distribute/googleplay/wear.jd
index c0a0017..7661016 100644
--- a/docs/html/distribute/googleplay/wear.jd
+++ b/docs/html/distribute/googleplay/wear.jd
@@ -1,4 +1,4 @@
-page.title=Distributing to Android Wear
+page.title=Distribute to Android Wear
 page.image=/design/media/wear/ContextualExample.008_2x.png
 meta.tags="wear", "publish", "quality"
 page.tags="wear", "publish", "googleplay"
diff --git a/docs/html/distribute/googleplay/work/about.jd b/docs/html/distribute/googleplay/work/about.jd
new file mode 100644
index 0000000..6ced561
--- /dev/null
+++ b/docs/html/distribute/googleplay/work/about.jd
@@ -0,0 +1,95 @@
+page.title=Google Play for Work
+page.metaDescription=Distribute your apps directly to enterprises and business users.
+page.tags="enterprise", "emm", "business", "administrator"
+page.image=images/distribute/android-work.jpg
+@jd:body
+
+<p>Google Play for Work is an extension of Google Play that lets Android for Work users browse and install apps. IT admins in a business using Android for Work choose which public and private apps are made available to users in their business. Businesses can use Google Play for Work to securely bulk deploy free apps to their employees or bulk purchase paid apps depending on their needs.</p>
+
+<p>As a Google Play developer, your free apps are automatically ready to be selected by Android for Work customers and made available to their workforces on Google Play for Work. However, to allow businesses access to bulk purchase your paid apps, you must opt-in and agree to the <a href="https://play.google.com/about/work/developer-distribution-agreement-addendum.html">Google Play for Work Addendum</a> to the Developer Distribution Agreement.</p>
+
+<p>Find out more about <a href="">distributing to Google Play for Work</a>.</p>
+
+<div class="wrap">
+  <div class="cols" style="margin-top:2em;">
+    <div class="col-6of12">
+      <h2 id="maximize_your_ad_revenue">For developers</h2>
+      <img src="{@docRoot}images/distribute/gpfw_developer.png">
+      <h5>Get discovered</h5>
+      <p>Get your business related apps listed in a business specific gateway so they stand out from consumer apps.</p>
+      <h5>Get volume</h5>
+      <p>Reach new audiences at scale because businesses will be able to deploy your free apps in bulk. Bulk purchasing also allows businesses to buy your paid app at scale.</p>
+      <h5>Generate revenue from extended support</h5>
+      <p>Businesses will often look for extended support for business critical apps, and you have the opportunity to offer that support for a fee.</p>
+      <h5>Continue to offer in app-purchases</h5>
+      <p>You can continue to offer free apps with in-app purchases. Business employees will be able to make purchases just as they would if they personally installed your app. </p>
+    </div>
+
+
+    <div class="col-6of12">
+      <h2 id="maximize_your_ad_revenue">For businesses</h2>
+      <img src="{@docRoot}images/distribute/gpfw_business.png">
+      <h5>Free to businesses</h5>
+      <p>Google Play for Work is available free of charge to Android for Work customers.</p>
+      <h5>Full IT approval for apps</h5>
+      <p>IT can now approve and manage every app deployed to its organization’s workers.</p>
+      <h5>Secure app distribution</h5>
+      <p>Provides a secure gateway for distributing apps within your company, whether they are available publicly or distributed privately to employees at your organization.</p>
+      <h5>Work app configuration</h5>
+      <p>Maintain app settings, such as server addresses and default user settings, from your admin console for enabled apps.</p>
+      <h5>Business-wide licensing</h5>
+      <p>Paid apps are licensed to your organization, enabling you to move paid apps between users as users needs change and staff turns over. </p>
+    </div>
+  </div>
+</div>
+
+<h2 id="best_practices">Best practices for success</h2>
+
+<p>Keep these best practices in mind as you build a great enterprise-ready app.</p>
+
+<h3 id="design">Build a great app for business</h3>
+
+<ul>
+  <li>Follow best practices for security and manage user data properly. Businesses
+  are more conscious of data security and employee productivity, especially when it
+  comes to features that share information with other services.</li>
+  <li>Support the Work App Configuration framework to let an administrator remotely configure app settings such as:
+    <ul>
+      <li>Server address and protocol settings</li>
+      <li>The ability to switch features on and off</li>
+      <li>Sign-in credentials for your app's backend servers</li>
+      <li>Default user settings</li>
+    </ul>
+  </li>
+  <li>Request the minimum permissions that your app needs.</li>
+  <li>Make sure communication to your backend and data in your backend is secure.</li>
+  <li>Implement authorization policies that will minimize the number of your employees that can access user data.</li>
+  <li><a href={@docRoot}training/enterprise/app-compatibility.html">Offer compatibility with managed profile</a> and test that with the <a href="{@docRoot}samples/BasicManagedProfile/index.html">BasicManagedProfile sample app</a>.</li>
+  <li>Support <a href="{@docRoot}training/enterprise/app-restrictions.html">app restrictions</a> so that IT admins can remotely configure your app through leading EMM solutions.</li>
+</ul>
+
+<!--<h3 id="distribute">Distribute</h3>
+
+<p>Free to install apps are automatically made available through Google Play for Work, but for paid apps:</p>
+
+<ul>
+<li>When you <a href="https://support.google.com/googleplay/android-developer/answer/113469">publish your app through the Developer Console</a>, opt in to distribute through Google Play for Work, so you agree to your app’s licenses being transferrable within a single business customer.</li>
+<li>Use the <a href="{@docRoot}}google/play/licensing/index.html">Licensing API to track which users have licenses assigned.</li>
+</ul> -->
+
+
+<h3 id="support">Provide support and maintenance</h3>
+
+<ul>
+<li>Consider offering enhanced support to cover extended hours or specific means of contact. Businesses are often willing to pay for this service.</li>
+<li>If you update the App Configuration / App Restrictions schema for your app, make sure it remains backward compatible. This is because it’s possible that different users will have different versions of your app (at least temporarily), and IT admin will want a consistent remote configuration experience between versions to ensure efficient management of apps in the field.</li>
+</ul>
+
+<h2 id=related_resources>Related resources</h2>
+
+<div class="resource-widget resource-flow-layout col-13"
+  data-query="collection:distribute/googleplay/gpfw"
+  data-sortOrder="-timestamp"
+  data-cardSizes="9x3"
+  data-maxResults="6"></div>
+
diff --git a/docs/html/distribute/images/advertising.jpg b/docs/html/distribute/images/advertising.jpg
index 9625671..7747097 100644
--- a/docs/html/distribute/images/advertising.jpg
+++ b/docs/html/distribute/images/advertising.jpg
Binary files differ
diff --git a/docs/html/distribute/index.jd b/docs/html/distribute/index.jd
index d0ea661..d3f3836 100644
--- a/docs/html/distribute/index.jd
+++ b/docs/html/distribute/index.jd
@@ -1,3 +1,4 @@
+fullpage=true
 page.title=Distribute Your Apps
 page.viewport_width=970
 section.landing=true
@@ -6,21 +7,84 @@
 page.metaDescription=The most visited store in the world for Android apps. Cloud-connected and always synced, it's never been easier for users to find and download your apps.
 
 @jd:body
+<div class="dac-hero-carousel" data-carousel-query="collection:distribute/landing/carousel">
+</div>
 
-    <div class="resource-widget resource-carousel-layout col-16" 
-    style="height:420px;margin-top:20px;padding-top:0"
-    data-query="type:youtube+tag:googleplay+tag:developerstory+tag:featured"
-    data-sortOdrder="-timestamp"
-    data-maxResults="4"></div>
+<div class="wrap dac-offset-parent">
+  <a class="dac-fab dac-scroll-button" data-scroll-button href="#latest">
+    <i class="dac-sprite dac-arrow-down-gray"></i>
+  </a>
+</div>
 
+<section class="dac-section dac-gray dac-small dac-invert" id="latest"><div class="wrap">
+  <h2 class="norule">Latest</h2>
   <div class="resource-widget resource-flow-layout col-16"
-    data-query="type:blog+tag:googleplay+tag:distribute+tag:featured"
-    data-sortOrder=""
-    data-cardSizes="9x6"
-    data-maxResults="2"></div>
+      data-query="type:youtube+tag:googleplay+tag:developerstory+tag:featured, type:blog+tag:googleplay+tag:distribute+tag:featured"
+      data-sortOrder="-timestamp"
+      data-cardSizes="6x6"
+      data-maxResults="3"></div>
+</div></section>
 
+<section class="dac-section dac-invert dac-darken-bg" style="background-image: url(/images/distribute/google-play-bg.jpg)"><div class="wrap">
+  <div class="cols"><div class="col-10of12 col-push-1of12">
+    <h1 class="dac-section-title">Reach the world with Google Play</h1>
+    <div class="dac-section-subtitle">
+      Publish your apps and games on Google Play and reach over a billion active Android users in over 190 countries around the world.
+    </div>
+  </div></div>
   <div class="resource-widget resource-flow-layout col-16"
-    data-query="collection:launch/static"
-    data-sortOrder=""
-    data-cardSizes="6x2x3,6x6,6x6,6x6,6x6,6x2x3,6x2x3,6x6,6x6,6x6,6x6,6x6"
-    data-maxResults="24"></div>
+       data-query="collection:distribute/landing/googleplay"
+       data-cardSizes="6x6"
+       data-maxResults="3"></div>
+
+  <ul class="dac-section-links">
+    <li class="dac-section-link"><a href="/distribute/googleplay/start.html">
+      <span class="dac-sprite dac-auto-chevron"></span>
+      Get started
+    </a></li>
+    <li class="dac-section-link"><a href="/distribute/essentials/index.html#quality-guidelines">
+      <span class="dac-sprite dac-auto-chevron"></span>
+      Quality guidelines
+    </a></li>
+    <li class="dac-section-link"><a href="/distribute/essentials/index.html#tools-and-resources">
+      <span class="dac-sprite dac-auto-chevron"></span>
+      Resources &amp; tools
+    </a></li>
+    <li class="dac-section-link"><a href="/distribute/stories/index.html">
+      <span class="dac-sprite dac-auto-chevron"></span>
+      Developer stories
+    </a></li>
+    <li class="dac-section-link"><a href="/distribute/users/index.html">
+      <span class="dac-sprite dac-auto-chevron"></span>
+      Get users
+    </a></li>
+    <li class="dac-section-link"><a href="/distribute/engage/index.html">
+      <span class="dac-sprite dac-auto-chevron"></span>
+      Engage &amp; retain
+    </a></li>
+    <li class="dac-section-link"><a href="/distribute/monetize/index.html">
+      <span class="dac-sprite dac-auto-chevron"></span>
+      Earn
+    </a></li>
+    <li class="dac-section-link"><a href="/distribute/analyze/index.html">
+      <span class="dac-sprite dac-auto-chevron"></span>
+      Analyze
+    </a></li>
+  </ul>
+</div></section>
+
+<section class="dac-section dac-light"><div class="wrap">
+  <div class="cols"><div class="col-10of12 col-push-1of12">
+    <h1 class="dac-section-title">More from Google</h1>
+    <div class="dac-section-subtitle">Reach and retain a valuable audience and grow your revenue.</div>
+  </div></div>
+  <div class="resource-widget resource-flow-layout col-16"
+       data-query="collection:distribute/landing/more"
+       data-cardSizes="6x6"></div>
+<!--  <ul class="dac-section-links">
+    <li class="dac-section-link"><a href="https://developers.google.com/">
+      <span class="dac-sprite dac-auto-chevron"></span>
+      More Google services for Android
+    </a></li>
+  </ul> -->
+</div></section>
diff --git a/docs/html/distribute/monetize/ads.jd b/docs/html/distribute/monetize/ads.jd
index 9a847ff..c15f2bb 100644
--- a/docs/html/distribute/monetize/ads.jd
+++ b/docs/html/distribute/monetize/ads.jd
@@ -1,138 +1,128 @@
-page.title=Monetize with Ads
-page.metaDescription=Ads are a quick and easy way to incorporate a monetization option into both your free and paid apps.
-page.tags="monetizing", "free", "freemium", "ads"
-page.image=/distribute/images/advertising.png
-
+page.title=Earn Revenue from AdMob Ads
+page.metaDescription=Gain insights about your users, drive more in-app purchases, and maximize your ad revenue.
+page.tags="monetizing", "ads", "admob", "ads"
+page.image=distribute/images/advertising.jpg
 @jd:body
 
 <div class="figure">
   <img src="{@docRoot}distribute/images/advertising.jpg" style="width:460px;">
 </div>
 
-<p>
-  Ads can be a quick and easy way to earn more from your <a href=
-  "{@docRoot}distribute/monetize/freemium.html">freemium</a>, <a href=
-  "{@docRoot}distribute/monetize/premium.html">premium</a>, and <a href=
-  "{@docRoot}distribute/monetize/subscriptions.html">subscription</a> apps.
-  AdMob and the Google Mobile Ads SDK let you add advertising to your apps with
-  just a few lines of code.
-</p>
+<p>Ads are an effective and easy way to earn revenue from your apps. AdMob brings
+together best-in-class technology in a single ad platform for your app, so you
+can gain insights about your users, drive more in-app purchases, and maximize
+your ad revenue. You won’t need to rely on a combination of tools or use
+precious development resources to build your own solution.</p>
 
-<p>
-  The question is: which model gets the best results for your app? Google's ad
-  tools are made to help you figure out what combination works best for both
-  your audience and your bottom line. </p>
-
-<p>Start by linking your AdMob and Google
-  Analytics accounts to get better insights and more earning power: for
-  instance, AdMob can promote in-app purchases to the people who buy them most
-  often, while showing income-generating ads to those less likely to buy right
-  now.
-</p>
-
-<p>
-  Using <a href=
-  "http://www.google.com/ads/admob/monetize.html#subid=us-en-et-dac">AdMob</a>
-  and the <a href="{@docRoot}google/play-services/ads.html">Google Mobile Ads
-  SDK</a> included in Google Play Services, you’re able to add advertising into
-  your apps, with just a few lines of code.
-</p>
-
-<p>
-  When including ads in your apps you should consider:
-</p>
+<p>Why choose AdMob?</p>
 
 <ul>
-  <li>
-    <p>
-      <strong>Placement within your apps</strong> &mdash; Well-placed ads make
-      it more likely that users will click through and convert. Poorly-placed
-      ads lead to lower click-through rates, and even poor ratings and users
-      abandoning your apps. Our <a href=
-      "{@docRoot}training/monetization/ads-and-ux.html">developer training</a>
-      on using ads shows some of the best ways to place ads.
-    </p>
-  </li>
-
-  <li>
-    <p>
-      <strong>Ad formats</strong> &mdash; Every app offers a different type of
-      experience for users, so it’s important that your ad formats match that
-      experience. While banner ads may work well for a flashlight utility app,
-      an immersive gaming app may benefit more from a video interstitial.
-      Mismatched ad formats can make users unhappy and leave money on the
-      table.
-    </p>
-  </li>
-
-  <li>
-    <p>
-      <strong>Maximizing your performance</strong> &mdash; Make sure you’re
-      optimizing your advertising revenue by maximizing your CPMs and fill
-      rate. Ad providers often cite their very high CPMs but don't mention low
-      fill rates that can severely decrease your effective CPM. Be sure to look
-      at both of these figures. Consider using a <a href=
-      "https://support.google.com/admob/v2/answer/3063564?hl=en&amp;ref_topic=3063091#subid=us-en-et-dac">
-      mediation</a> solution if you’d like to use multiple ad providers in your
-      apps. Look for solutions that offer yield management or <a href=
-      "https://support.google.com/admob/v2/answer/3379794?hl=en&amp;ref_topic=3379793#subid=us-en-et-dac">
-      network optimization</a> features to serve the highest paying ad for each
-      impression.
-    </p>
-  </li>
-
-  <li>
-    <p>
-      <strong>Exercising control options</strong> &mdash; A variety of ads may
-      show up within your app. It may make sense to <a href=
-      "https://support.google.com/admob/v2/answer/3150235?hl=enl#subid=us-en-et-dac">
-      block</a> certain of those advertisements from appearing, depending on
-      your goals and the type of experience you want to provide. Some
-      developers, for instance, don’t want ads for apps in their same category
-      showing to their users, while others don’t mind at all.
-    </p>
-  </li>
-
-  <li>
-    <p>
-      <strong>Cross promoting your other apps</strong> &mdash; Ads can do more
-      than earn revenue. Consider running <a href=
-      "https://support.google.com/admob/v2/answer/3210452?hl=en#subid=us-en-et-dac">
-      house ads</a> within your apps to promote other apps in your portfolio.
-      When you launch a new app, this kind of promotion is a free and easy way
-      to attract new users quickly.
-    </p>
-  </li>
+  <li> Over 650,000 apps use AdMob
+  <li> $1 billion+ paid to developers in the last 2 years
+  <li> Fast, reliable payment in local currencies
+  <li> High CPMs and the best fill rates
+  <li> Industry-leading mediation platform
 </ul>
 
-<p>
-  Don't forget that paid channels like AdWords and YouTube can help you cast a
-  wider net by reaching targeted audiences outside the app ecosystem. They're a
-  great way to find new users at a price that you control. <a href=
-  "https://support.google.com/adwords/answer/2549053">Learn more</a>.
-</p>
+<p><a href="http://www.google.com/ads/admob/#subid=us-en-et-dac">Sign-up for AdMob</a>
+today and start using the <a
+href="https://developer.android.com/google/play-services/ads.html">Google Mobile Ads SDK</a>
+in your app with a few lines of code.</p>
 
-<p>
-  To start monetizing with ads, sign up for AdMob and integrate the Google
-  Mobile Ads SDK into your apps. If you also need to manage direct deals with
-  advertisers, consider using DoubleClick for Publishers Small Business.
-</p>
+<h2 id="maximize_your_ad_revenue">Maximize your ad revenue</h2>
+
+<div class="wrap">
+  <div class="cols" style="margin-top:2em;">
+    <div class="col-4of12">
+      <h5 id="maximize_earnings">Maximize earnings</h5>
+      <p>Earn more with our industry-leading ad service, which includes <a href=
+      "https://support.google.com/admob/answer/3063564">free mediation</a> to
+      automatically improve your earnings, and access to all of Google’s advertiser
+      demand from AdMob, AdWords, and the DoubleClick Ad Exchange.</p>
+    </div>
+    <div class="col-4of12">
+      <h5 id="get_paid_fast">Get paid fast</h5>
+      <p>Get paid in local currencies quickly and reliably, with no wire fees charged by
+      AdMob.</p>
+    </div>
+    <div class="col-4of12">
+      <h5 id="easy_and_free">Easy and free</h5>
+      <p>The SDK can be installed quickly, and there are no standard fees for using the
+      platform.</p>
+    </div>
+  </div>
+</div>
+
+<h2 id="grow_your_business_with_a_trusted_partner">Grow your business with a trusted partner</h2>
+<div class="wrap">
+  <div class="cols" style="margin-top:2em;">
+    <div class="col-6of12">
+      <h5 id="powered_by_googles_ad_technology">Powered by Google’s ad technology</h5>
+      <p>For over a decade, Google has helped millions of developers grow their digital
+      businesses.</p>
+    </div>
+    <div class="col-6of12">
+      <h5 id="auto_updates_on_google_play">Auto updates on Google Play</h5>
+      <p>AdMob’s integration with Google Play services pushes automatic performance
+        improvements to Android apps without additional SDK changes.</p>
+    </div>
+  </div>
+</div>
 
 
-<p>
-  To start monetizing with ads sign up for <a href=
-  "http://www.google.com/ads/admob/#subid=us-en-et-dac">AdMob</a> and integrate
-  the <a href="https://developers.google.com/mobile-ads-sdk/download">Google
-  Mobile Ads SDK</a> into your apps. If you also need to manage direct deals
-  with advertisers, consider using <a href=
-  "http://www.google.com/doubleclick/publishers/small-business/index.html#subid=us-en-et-dac">
-  DoubleClick for Publishers Small Business</a>.
-</p>
+<h2 id="drive_more_in-app_purchases_and_downloads">Drive more in-app purchases and downloads</h2>
+<div class="wrap">
+  <div class="cols" style="margin-top:2em;">
+    <div class="col-6of12">
+<h5 id="sell_more_in-app_purchases">Sell more in-app purchases</h5>
+<p>Earn more revenue by intelligently promoting your in-app purchases to the users
+most likely to buy them.</p>
+    </div>
+    <div class="col-6of12">
+<h5 id="promote_your_apps_for_free">Promote your apps for free</h5>
+<p>Cross-sell your other apps (or your friend’s apps) to your existing users,
+using free AdMob <a href="https://support.google.com/admob/answer/3210452">house ads</a>.</p>
+    </div>
+  </div>
+</div>
 
-<div class="headerLine"><h2 id="related-resources">Related resources</h2></div>
+<h2 id="understand_users">Understand your users</h2>
+<div class="wrap">
+  <div class="cols" style="margin-top:2em;">
+    <div class="col-6of12">
+<h5 id="analytics_for_apps">Analytics for apps</h5>
+<p>Analyze your app’s performance from within AdMob with Google Analytics.
+Discover where people are downloading your app, and the features they use the
+most in real time.</p>
+    </div>
+    <div class="col-6of12">
+<h5 id="flow_visualization_reports">Flow visualization reports</h5>
+<p>In Analytics, see how people are navigating through your app with graphical
+<a href="https://support.google.com/analytics/answer/2519986">flow reports</a>.
+View the path they take to making a purchase, and the point where they exit
+the app, plus much more.</p>
+    </div>
+  </div>
+</div>
+
+
+<div style="<h2 id=tips>Tips</h2>
+
+<ul>
+  <li> Place ads wisely, they shouldn't be too intrusive but still need to be clearly
+visible to attract clickthroughs.
+  <li> Use banner, interstitial, and other ad formats appropriately.
+  <li> Make use of targeting features to match ads with your users and your app.
+  <li> Remember that ads form part of your app and must match its age rating.
+  <li> Exercise control options sensibly, don't get carried away excluding potentially
+competing ads at the expense of revenue.
+</ul>
+
+
+<h2 id=related_resources>Related resources</h2>
 
 <div class="resource-widget resource-flow-layout col-13"
-  data-query="collection:distribute/monetize/advertising"
+  data-query="collection:distribute/monetize/admob"
   data-sortOrder="-timestamp"
   data-cardSizes="9x3"
   data-maxResults="6"></div>
diff --git a/docs/html/distribute/monetize/index.jd b/docs/html/distribute/monetize/index.jd
index 7350a24..dc5c704 100644
--- a/docs/html/distribute/monetize/index.jd
+++ b/docs/html/distribute/monetize/index.jd
@@ -1,4 +1,4 @@
-page.title=Monetize
+page.title=Earn
 section.landing=true
 nonavpage=true
 
@@ -17,20 +17,17 @@
   help you track where your money is coming from.
 </p>
 
-<div class="dynamic-grid">
-
   <div class="resource-widget resource-flow-layout landing col-16"
     data-query="collection:distribute/monetize"
     data-cardSizes="6x6"
     data-maxResults="9">
   </div>
 
-<h3>Related resources</h3>
+<!-- <h2>Related resources</h2>
 
   <div class="resource-widget resource-flow-layout col-16"
     data-query="tag:monetizing"
-    data-sortOrder="-timestamp"
-    data-cardSizes="6x3"
-    data-maxResults="6">
-  </div>
-</div>
+    data-cardSizes="6x2"
+    data-sortOrder="random"
+    data-maxResults="3">
+  </div> -->
\ No newline at end of file
diff --git a/docs/html/distribute/monetize/monetize_toc.cs b/docs/html/distribute/monetize/monetize_toc.cs
index 8211689..aa1bdd6 100644
--- a/docs/html/distribute/monetize/monetize_toc.cs
+++ b/docs/html/distribute/monetize/monetize_toc.cs
@@ -24,7 +24,7 @@
   </li>
   <li class="nav-section">
     <div class="nav-section-header empty" style="font-weight:normal"><a href="<?cs var:toroot?>distribute/monetize/ads.html">
-          <span class="en">Ads</span>
+          <span class="en">AdMob Ads</span>
         </a>
     </div>
   </li>
diff --git a/docs/html/distribute/monetize/payments.jd b/docs/html/distribute/monetize/payments.jd
index 55c289f..187f872 100644
--- a/docs/html/distribute/monetize/payments.jd
+++ b/docs/html/distribute/monetize/payments.jd
@@ -1,5 +1,5 @@
 page.title=Convenient, Frictionless Purchasing
-page.image=/distribute/images/payment-method.jpg
+page.image=
 page.metaDescription=Users can purchase instantly with a choice of payment methods.
 page.tags="google play", "payments", "gift card"
 
diff --git a/docs/html/distribute/tools/index.jd b/docs/html/distribute/tools/index.jd
index c8f0212..24c3398 100644
--- a/docs/html/distribute/tools/index.jd
+++ b/docs/html/distribute/tools/index.jd
@@ -9,49 +9,39 @@
   users, and monetize your investment.
 </p>
 
-<div class="dynamic-grid">
-
-  <h3>Publishing and Launch</h3>
+  <h2>Publishing and Launch</h2>
   <div class="resource-widget resource-flow-layout landing col-16"
     data-query="collection:distribute/tools/checklists"
     data-cardSizes="9x6"
     data-maxResults="2">
   </div>
 
-<h3>Marketing Tools</h3>
+  <h2>Marketing Tools</h2>
   <div class="resource-widget resource-flow-layout landing col-16"
     data-query="collection:distribute/tools/promote"
     data-cardSizes="6x6"
     data-maxResults="3">
   </div>
 
-  <h3>Developer Support</h3>
+  <h2>Developer Support</h2>
   <div class="resource-widget resource-flow-layout landing col-16"
     data-query="collection:distribute/tools/support"
     data-cardSizes="6x6"
     data-maxResults="3">
   </div>
 
-  <h3>Developer News</h3>
+  <h2>Developer News</h2>
   <div class="resource-widget resource-flow-layout landing col-16"
     data-query="collection:distribute/tools/news"
     data-cardSizes="9x6"
     data-maxResults="2">
   </div>
 
-  <h3>More</h3>
+  <h2>More</h2>
   <div class="resource-widget resource-flow-layout landing col-16"
     data-query="collection:distribute/tools/more"
     data-cardSizes="6x6"
     data-maxResults="3">
   </div>
 
-<!--  <h3>Related Resources</h3>
-  <div class="resource-widget resource-stack-layout col-16"
-    data-query="tag:developersupport"
-    data-sortOrder="-timestamp"
-    data-numStacks="3"
-    data-maxResults="6">
-  </div> -->
 
-</div>
diff --git a/docs/html/distribute/tools/promote/device-art.jd b/docs/html/distribute/tools/promote/device-art.jd
index 814177b..d321074 100644
--- a/docs/html/distribute/tools/promote/device-art.jd
+++ b/docs/html/distribute/tools/promote/device-art.jd
@@ -16,12 +16,12 @@
 
 <div class="supported-browser">
 
-<div class="layout-content-row">
-  <div class="layout-content-col span-3">
+<div class="cols">
+  <div class="col-3">
     <h4>Step 1</h4>
     <p>Drag a screenshot from your desktop onto a device to the right.</p>
   </div>
-  <div class="layout-content-col span-10">
+  <div class="col-10">
     <ul class="device-list primary"></ul>
     <a href="#" id="archive-expando">Older devices</a>
     <ul class="device-list archive"></ul>
@@ -30,8 +30,8 @@
 
 
 
-<div class="layout-content-row">
-  <div class="layout-content-col span-3">
+<div class="cols">
+  <div class="col-3">
     <h4>Step 2</h4>
     <p>Customize the generated image and drag it to your desktop to save.</p>
     <p id="frame-customizations">
@@ -48,7 +48,7 @@
       <label for="output-round">Round</label><br><br>
     </p>
   </div>
-  <div class="layout-content-col span-10">
+  <div class="col-10">
     <!-- position:relative fixes an issue where dragging an image out of a inline-block container
          produced no drag feedback image in Chrome 28. -->
     <div id="output" style="position:relative">No input image.</div>
diff --git a/docs/html/distribute/users/appindexing.jd b/docs/html/distribute/users/appindexing.jd
new file mode 100644
index 0000000..6a3fec6
--- /dev/null
+++ b/docs/html/distribute/users/appindexing.jd
@@ -0,0 +1,46 @@
+page.title=Drive installs from Google Search
+page.metaDescription=Surface the content of your apps in Google Search and link it to app installs.
+meta.tags="getusers", "search", "appindexing"
+page.image=images/cards/google-search_2x.png
+@jd:body
+
+<p>Google Search now helps users discover your app, with App Indexing. When users
+search with Google on their Android device the results will include details of
+relevant, indexed apps. The search results will include an install button that
+takes users to your app in the Google Play store. And when your app is
+installed, the user will be taken straight to the right content within it.</p>
+
+<div class="figure-left">
+<img src="{@docRoot}images/distribute/appindexing.gif">
+</div>
+
+<p>This free service expands your opportunities to turn the investment you’ve made
+in creating an outstanding app or game into installs. </p>
+
+<p>Start now by adding deep linking support to your app, verifying your app’s
+official website, and defining deep links. To learn how, check out these <a
+href="https://developers.google.com/app-indexing/webmasters/details">instructions</a>. </p>
+
+<p>Once your app is index, links to its content will join the 30 billion app index
+links already available to Google Search.</p>
+
+<h2 id=tips>Tips</h2>
+
+<ul>
+  <li> App Indexing will also be used as a ranking signal for all users on Android,
+regardless of whether they have your app installed or not. 
+  <li> App Indexing also helps drive use of your app — when your app is installed on a
+user’s device, search results will include deep links to your app that bring
+the user straight to the relevant app content.
+  <li> Use the App Indexing API to help users discover relevant content in your app
+before they complete a query with auto-completions.
+</ul>
+
+<h2 id=related_resources>Related resources</h2>
+
+<div class="resource-widget resource-flow-layout col-13"
+  data-query="collection:distribute/users/appindexing"
+  data-sortOrder="-timestamp"
+  data-cardSizes="9x3"
+  data-maxResults="6"></div>
+
diff --git a/docs/html/distribute/users/house-ads.jd b/docs/html/distribute/users/house-ads.jd
new file mode 100644
index 0000000..d662fb2
--- /dev/null
+++ b/docs/html/distribute/users/house-ads.jd
@@ -0,0 +1,61 @@
+page.title=Cross-Sell to Users with House Ads
+page.metaDescription=Tap into your existing user base to increase downloads and increase conversions.
+page.tags="google", "identity", "signin"
+page.image=distribute/images/advertising.jpg
+
+@jd:body
+
+<p>One of the fastest ways to accumulate downloads or increase conversions is to tap into your
+existing user base. These users know your products and are a receptive audience for your other
+apps and in-app products.</p>
+
+<h3>Promote your apps for free</h3>
+
+<p>AdMob's house ads let you cross-sell your other apps (or your friend’s apps) to your
+existing users, and it's a free service.</p>
+
+<h3>Sell more in-app purchases</h3>
+
+<p>Intelligently promote your in-app purchases to the users most likely to buy them, with
+AdMob’s free in-app purchase house ad format.</p>
+
+<p>Get started <a href="https://developers.google.com/identity/sign-in/">integrating
+Google sign-in into your apps and games</a>.</p>
+
+<div class="wrap">
+  <div class="cols" style="margin:1em auto;">
+    <div class="col-8of12">
+     <img src="{@docRoot}images/distribute/house-ads.png" style="padding-top:1em;">
+    </div>
+  </div>
+</div>
+
+<p><a href="http://www.google.com/ads/admob/#subid=us-en-et-dac">Sign-up for AdMob</a> today
+and start using the <a href="https://developer.android.com/google/play-services/ads.html">Google
+Mobile Ads SDK</a> included in Google Play services to show ads in your app with a few lines of
+code. Then create your <a href="https://support.google.com/admob/answer/3210442?hl=en">house
+ad campaigns</a>.</p>
+
+<h2>Tips</h2>
+
+<ul>
+  <li>AdMob automatically figures out which of your users are likely to spend to optimize which
+  users see the ads.</li>
+  <li>Place ads wisely, they shouldn't be too intrusive but still need to be clearly visible to
+  attract clickthroughs.</li>
+  <li>Remember that ads form part of your app and must match its age rating.</li>
+  <li>Use the impression goals feature of AdMob house ads to set limits on the number of ads
+  served. This is useful if you want to run ad campaigns in your app from other developers.</li>
+</ul>
+
+
+<h2 style="clear:both" id="related-resources">Related Resources</h2>
+
+<div class="resource-widget resource-flow-layout col-13"
+  data-query="collection:distribute/users/houseads"
+  data-sortorder="-timestamp"
+  data-cardsizes="6x3"
+  data-maxresults="6">
+</div>
+
+
diff --git a/docs/html/distribute/users/index.jd b/docs/html/distribute/users/index.jd
index a810f36..a3f8d01 100644
--- a/docs/html/distribute/users/index.jd
+++ b/docs/html/distribute/users/index.jd
@@ -10,21 +10,23 @@
   developers. These best practices are critical to your app or game’s success.
 </p>
 
-<div class="dynamic-grid">
-
 <div class="resource-widget resource-flow-layout landing col-16"
   data-query="collection:distribute/users"
   data-cardSizes="6x6"
   data-maxResults="6">
 </div>
+<div class="resource-widget resource-flow-layout landing col-16"
+  data-query="collection:distribute/users"
+  data-cardSizes="9x3"
+  data-maxResults="16">
+</div>
 
-<h3>Related resources</h3>
+<!-- <h2>Related resources</h2>
 
   <div class="resource-widget resource-flow-layout col-16"
-    data-query="type:youtube+tag:users,tag:global,type:blog+tag:users"
-    data-sortOrder="-timestamp"
-    data-cardSizes="6x3"
-    data-maxResults="6">
-  </div>
-  
-</div>
+    data-query="tag:users"
+    data-sortOrder="random"
+    data-cardSizes="6x2"
+    data-maxResults="3">
+  </div> -->
+
diff --git a/docs/html/distribute/users/ota-installs.jd b/docs/html/distribute/users/ota-installs.jd
new file mode 100644
index 0000000..f703257
--- /dev/null
+++ b/docs/html/distribute/users/ota-installs.jd
@@ -0,0 +1,51 @@
+page.title=Offer Over-the-air Installs
+page.metaDescription=Let users send your app directly to their devices when they sign in with Google.
+page.tags="google", "identity", "installs"
+page.image=images/cards/google-sign-in_2x.png
+
+
+@jd:body
+
+<p>Google sign-in is a trusted registration system that's familiar to users and
+consistent across devices. With minimal effort, you can improve your sign-in conversion
+with a fast and secure authentication option for users. And by using Google sign-in,
+you can offer users the option to send your app directly to their Android devices when
+they sign-in, without the need for them to visit the Play store. Using this approach,
+some developers have seen app installation acceptance rates of 40%.</p>
+
+<p>Get started with <a href="https://developers.google.com/identity/sign-in/android/">
+Google sign-in for Android</a> and then enable <a
+href="https://developers.google.com/identity/sign-in/web/android-app-installs">over-the-air
+installs</a> for your web site.</p>
+
+<div class="wrap">
+  <div class="cols" style="margin-top:2em;">
+    <div class="col-8of12 col-push-1of12">
+     <img src="{@docRoot}images/distribute/ota-installs.gif">
+    </div>
+  </div>
+</div>
+
+
+<h2>Tips</h2>
+
+<ul>
+  <li>Adding Google sign-in to your app can increase conversions by reducing the burden
+  and friction of sign-in, while helping users keep their accounts secure.</li>
+  <li>Focus on the quality of your app to ensure that it passes the quality threshold for
+  over-the-air installation.</li>
+  <li>Measure impressions of the Android install prompt, installs, and success rate by
+  day, week, and month with Platform Insights.</li>
+</ul>
+
+
+<h2 style="clear:both" id="related-resources">Related Resources</h2>
+
+<div class="resource-widget resource-flow-layout col-13"
+  data-query="collection:distribute/users/otas"
+  data-sortorder="-timestamp"
+  data-cardsizes="9x3"
+  data-maxresults="4">
+</div>
+
+
diff --git a/docs/html/distribute/users/promote-with-ads.jd b/docs/html/distribute/users/promote-with-ads.jd
index 1e28ae1..3456c66 100644
--- a/docs/html/distribute/users/promote-with-ads.jd
+++ b/docs/html/distribute/users/promote-with-ads.jd
@@ -1,45 +1,143 @@
 page.title=Promote Your App with Ads
-page.metaDescription=Promote your app through AdMob, AdWords, and YouTube to find new users at the right moment.
-page.image=/images/gp-ads-console.jpg
-page.tags="users, ads, analytics"
-
+page.metaDescription=Promote your app with AdWords to find new users at the right moment.
+page.image=images/cards/adwords_2x.jpg
+page.tags="users, ads, adwords"
 @jd:body
 
-<p>
-  AdMob is Google's advertising platform for mobile apps. You can use it to
-  monetize your app and promote your apps, and you can link your Google
-  Analytics account to AdMob so you can analyze your apps &mdash; all in one
-  place.
-</p>
+<p>Users have a huge amount of choice when it comes to which apps they install and
+use, so it’s important to actively find new ways to promote your app and drive
+ongoing engagement. AdWords is a powerful and effective way to do both.</p>
 
-<p>
-  <a href="http://www.google.com/ads/admob/">AdMob</a> is the largest mobile ad
-  app network. But you get more than just massive scale: AdMob will soon help
-  you find the right users in related apps. If your app is for bicycling, AdMob
-  can promote your app on other fitness and cycling-related apps worldwide.
-  <a href=
-  "https://apps.admob.com/admob/signup?subid=us-en-et-dac&_adc=ww-ww-et-admob2&hl=en">
-  Sign up for AdMob</a>.
-</p>
 
-<p>
-  AdMob also offers new solutions to help you achieve app-related goals such as
-  downloads, re-engagement and in-app purchases using Google search and the
-  Google Display Network. These solutions include streamlined campaign creation
-  flows and tools to track performance across the entire app lifecycle.
-  <a href="https://support.google.com/adwords/answer/2549053?hl=en">Learn
-  More</a>.
-</p>
-<div style="margin-top:2em;">
-  <img src="{@docRoot}images/gp-ads-console.jpg">
+<h2 id=drive_installs>Drive installs</h2>
+
+<p><a href="http://adwords.google.com">AdWords</a> promotes your app to interested
+users where they spend time on phones and
+tablets – with app install ads on Google Search, YouTube, Gmail, and within
+apps and across the web on  the Google Display Network. AdWords is a powerful
+way to scale app promotion across Google networks and find customers that are
+most likely to install your app. </p>
+
+<p><a href="https://support.google.com/adwords/answer/6032059">Get started with AdWords
+app install ads</a>.</p>
+
+
+
+<div class="wrap">
+  <div class="cols" style="margin-top:1em;">
+    <div class="col-4of12">
+   <h3>From Google Play</h3>
+    <img src="/images/distribute/promote_ads_play.png">
+    <p class="figure-caption">Search ads on Google Play are still undergoing testing and
+    not yet available to buy. <a
+    href="http://android-developers.blogspot.com/2015/02/a-new-way-to-promote-your-app-on-google.html">Find
+    out more</a>.</p>
+    </div>
+    <div class="col-4of12">
+  <h3>From search</h3>
+    <img src="/images/distribute/promote_ads_search.png">
+    <p class="figure-caption">Connect with users as they search for content and services
+    provided by your app.</p>
+    </div>
+    <div class="col-4of12">
+   <h3>From YouTube</h3>
+   <img src="/images/distribute/promote_ads_youtube.png">
+    <p class="figure-caption">Promote your app when users are watching related videos.</p>
+    </div>
+  </div>
 </div>
 
-<div class="headerLine">
+<div class="wrap">
+  <div class="cols" style="margin-top:1em;">
+    <div class="col-4of12">
+    <h3>From apps</h3>
+    <img src="/images/distribute/promote_ads_apps.png">
+    <p class="figure-caption">Reach users while they’re engaged with apps and games across the
+    AdMob network.</p>
+    </div>
+    <div class="col-4of12">
+   <h3>From the web</h3>
+   <img src="/images/distribute/promote_ads_web.png">
+    <p class="figure-caption">Reach users while they’re engaged with websites across the Google
+    Display Network.</p>
+    </div>
+    <div class="col-4of12">
+    <h3>From Gmail</h3>
+    <img src="/images/distribute/promote_ads_gmail.png">
+    <p class="figure-caption">Promote your app while users communicate and get things done in
+    Gmail.</p>
+    </div>
+  </div>
+</div>
+
+
+<h2>Tips</h3>
+
+<ul>
+  <li> Estimate how much an app user is worth to your business, so that you can work
+out an appropriate cost-per-install that you’re willing to pay.
+  <li> Ensure that your ads and Play Store listing are compelling and clearly describe
+your app’s value.
+  <li> Check that you’re accurately tracking and attributing installs by installing
+the AdWords <a href="https://developers.google.com/app-conversion-tracking/">conversion tracking SDK</a>.
+  <li> Promote your app broadly across display, search, and video to reach even more
+potential users and drive a higher volume of installs.
+  <li> Start with broader targeting and then fine tune your bidding once you’ve
+assessed your campaign results.
+  <li> Use Conversion Optimizer to automate your bidding so that your ads target users
+who are most likely to install your app. 
+  <li> Use Conversion Optimizer for in-app buyers to automate your bidding so that
+your ads target high value users who are most likely to make purchases in your
+app.
+</ul>
+
+
+<h2 id=engage_with_users>Engage with users</h2>
+
+<p>Getting a user to install an app is one thing, but you'll also want them to
+open it regularly. AdWords offers app re-engagement tools to help your app stay
+in mind with users who’ve already installed it on their phone. AdWords can
+remind them of key features and encourage them to try your app again, or help
+them complete an activity they didn't know your app could handle.</p>
+
+
+<div class="wrap">
+  <div class="cols" style="margin-top:1em;">
+    <div class="col-4of12">
+   <h3>From search</h3>
+   <img src="/images/distribute/promote_ads.png">
+    <p class="figure-caption">Add deep links to your app, then bring users straight
+    to relevant app content when they’re searching.</p>
+    </div>
+    <div class="col-4of12">
+    <h3>From apps</h3>
+    <img src="/images/distribute/promote_ads_inapp.png">
+    <p class="figure-caption">Use remarketing and deep links to bring users to just the right
+    place in your app to re-engage and convert, from other apps and games they love.</p>
+    </div>
+  </div>
+</div>
+
+
+<h3>Tips</h3>
+
+<ul>
+  <li> Track what users do in your app after they’ve clicked an ad, by installing the
+AdWords <a href="https://developers.google.com/app-conversion-tracking/">conversion tracking SDK</a>.
+  <li> Advertise a compelling reason for users to re-engage with your app (such as a
+reminder or a special offer).
+  <li> <a href="https://developers.google.com/app-indexing/webmasters/app">Add deep links</a> to your app that’ll take users  directly to the parts of your app that will be
+most relevant and interesting to them, where they can easily take action.
+  <li> Re-engage your app users across the display network with remarketing lists and
+search with keywords.
+  <li> Use remarketing lists to target high value users so that you can drive more
+conversions in your app.
+</ul>
+
 <h2 id="related-resources">Related Resources</h2>
-</div>
 
 <div class="resource-widget resource-flow-layout col-13"
   data-query="collection:distribute/users/promotewithads"
   data-sortOrder="-timestamp"
   data-cardSizes="9x3"
-  data-maxResults="6"></div>
\ No newline at end of file
+  data-maxResults="6"></div>
diff --git a/docs/html/distribute/users/users_toc.cs b/docs/html/distribute/users/users_toc.cs
index edfa874..3aa3fe1 100644
--- a/docs/html/distribute/users/users_toc.cs
+++ b/docs/html/distribute/users/users_toc.cs
@@ -11,18 +11,6 @@
     </div>
   </li>
   <li class="nav-section">
-    <div class="nav-section-header empty" style="font-weight:normal"><a href="<?cs var:toroot?>distribute/users/build-buzz.html">
-          <span class="en">Build Buzz</span>
-        </a>
-    </div>
-  </li>
-  <li class="nav-section">
-    <div class="nav-section-header empty" style="font-weight:normal"><a href="<?cs var:toroot?>distribute/users/build-community.html">
-          <span class="en">Build Community</span>
-        </a>
-    </div>
-  </li>
-  <li class="nav-section">
     <div class="nav-section-header empty" style="font-weight:normal"><a href="<?cs var:toroot?>distribute/users/expand-to-new-markets.html">
           <span class="en">Expand to New Markets</span>
         </a>
@@ -34,6 +22,42 @@
         </a>
     </div>
   </li>
+  <li class="nav-section">
+    <div class="nav-section-header empty" style="font-weight:normal"><a href="<?cs var:toroot?>distribute/users/appindexing.html">
+          <span class="en">Drive Installs through Search</span>
+        </a>
+    </div>
+  </li>
+  <li class="nav-section">
+    <div class="nav-section-header empty" style="font-weight:normal"><a href="<?cs var:toroot?>distribute/users/ota-installs.html">
+          <span class="en">Offer Over-the-air Installs</span>
+        </a>
+    </div>
+  </li>
+  <li class="nav-section">
+    <div class="nav-section-header empty" style="font-weight:normal"><a href="<?cs var:toroot?>distribute/users/house-ads.html">
+          <span class="en">Cross-Sell to Users with House Ads</span>
+        </a>
+    </div>
+  </li>
+  <li class="nav-section">
+    <div class="nav-section-header empty" style="font-weight:normal"><a href="<?cs var:toroot?>distribute/users/youtube.html">
+          <span class="en">Drive installs from YouTube</span>
+        </a>
+    </div>
+  </li>
+  <li class="nav-section">
+    <div class="nav-section-header empty" style="font-weight:normal"><a href="<?cs var:toroot?>distribute/users/build-buzz.html">
+          <span class="en">Build Buzz</span>
+        </a>
+    </div>
+  </li>
+  <li class="nav-section">
+    <div class="nav-section-header empty" style="font-weight:normal"><a href="<?cs var:toroot?>distribute/users/build-community.html">
+          <span class="en">Build Community</span>
+        </a>
+    </div>
+  </li>
 </ul>
 
 
diff --git a/docs/html/distribute/users/youtube.jd b/docs/html/distribute/users/youtube.jd
new file mode 100644
index 0000000..0be6584
--- /dev/null
+++ b/docs/html/distribute/users/youtube.jd
@@ -0,0 +1,34 @@
+page.title=Drive installs from YouTube
+page.metaDescription=Bring users from videos to your store listing with a merchandise card available on YouTube.
+page.image=images/cards/card-youtube_2x.png
+page.tags="users, youtube, cards, videos"
+@jd:body
+
+<p>Now you can bring users who discover your app videos on YouTube to your store listing with a merchandise card, one of several card types available to add to YouTube videos. Once published the presence of the merchandise card is indicated in the video with an information icon. When a viewer opens the card they follow the link to your app on the Play Store, where they can install your app.</p>
+
+<div class="wrap" style="margin:2em auto">
+  <div class="cols">
+    <div class="col-9of12">
+      <img src="{@docRoot}images/distribute/youtube-card-example.png">
+    </div>
+  </div>
+</div>
+
+<p>Get started <a href="https://support.google.com/youtube/answer/6140493">adding merchandise cards to your uploaded videos</a>.</p>
+
+<h2>Tips</h2>
+<ul>
+<li>Don’t indicate the location of a card within your video, cards might be positioned differently on different devices.</li>
+<li>When you add cards, featured video or playlist highlights in your video are hidden. </li>
+<li>In order to display cards, your account needs to be in good standing.</li>
+<li>Performance reporting for cards is available in YouTube Analytics.</li>
+<li>Cards work better when they're not too close to each other. Try spacing them out.</li>
+</ul>
+
+<h2 id="related-resources">Related resources</h2>
+
+<div class="resource-widget resource-flow-layout col-13"
+  data-query="collection:distribute/users/youtube"
+  data-sortOrder="-timestamp"
+  data-cardSizes="9x3"
+  data-maxResults="6"></div>
diff --git a/docs/html/google/gcm/c2dm.jd b/docs/html/google/gcm/c2dm.jd
deleted file mode 100644
index bc58e66..0000000
--- a/docs/html/google/gcm/c2dm.jd
+++ /dev/null
@@ -1,119 +0,0 @@
-page.title=Migration
-@jd:body
-
-<div id="qv-wrapper">
-<div id="qv">
-
-<h2>Quickview</h2>
-
-<ul>
-<li>Understand the differences between GCM and C2DM.</li>
-<li>Learn how to migrate an app from C2DM to GCM.</li>
-
-</ul>
-
-
-<h2>In this document</h2>
-
-<ol>
-<li><a href="#history">Historical Overview</a></li>
-<li><a href="#diffs">How is GCM Different from C2DM?</a>
-  <ol>
-    <li><a href="#interop">Relationship between C2DM and GCM</a></li>
-  </ol>
-</li>
-<li><a href="#migrating">Migrating Your Apps</a>
-  <ol>
-    <li><a href="#client">Client changes</a></li>
-    <li><a href="#server">Server changes</a></li>
-  </ol>
-</li>
-</ol>
-
-</div>
-</div>
-
-<p>Android Cloud to Device Messaging (C2DM) was officially deprecated on June 26, 2012, and will be
- shut down completely as of July 30, 2015.  <strong>C2DM developers are strongly encouraged to move
-  to Google Cloud Messaging (GCM)</strong>. GCM is the next generation of C2DM.</p>
-
-<p>This document is addressed to  C2DM developers who are moving to GCM. It describes the differences between GCM and C2DM, and explains how to migrate existing C2DM apps to GCM.</p>
-
-
-<h2 id="history">Historical Overview</h2>
-<p>C2DM  was launched in 2010 to help Android apps send data from servers to their applications. Servers can tell apps to contact the server directly, to fetch updated application or user data. The C2DM service handles all aspects of queueing of messages and delivery to the target application running on the target device.</p>
-<p>GCM replaces C2DM. The focus of GCM is as follows:</p>
-<ul>
-  <li> Ease of use. No sign-up forms.</li>
-  <li>No quotas.</li>
-  <li>GCM and C2DM stats are available through the <a href="http://play.google.com/apps/publish">Developer Console</a>.</li>
-  <li>Battery efficiency.</li>
-  <li>Rich set of new APIs.</li>
-</ul>
-<h2 id="diffs">How is GCM Different from C2DM?</h2>
-<p>GCM builds on the core foundation of C2DM. Here is what's different:</p>
-
-<dl>
-<dt><strong>Simple API Key</strong></dt>
-<dd>To use the GCM service, you need to obtain a Simple API Key from Google APIs console page. For more information, see <a href="gs.html">Getting Started</a>. Note that GCM <em>only</em> accepts Simple API Key&mdash;using ClientLogin or OAuth2 tokens will not work.
-</dd>
-<dt><strong>Sender ID</strong></dt>
-<dd>In C2DM, the Sender ID is an email address. In GCM, the Sender ID is a project number that you acquire from the API console, as described in <a href="gs.html#create-proj">Getting Started</a>. </dd>
-
-<dt><strong>JSON format</strong></dt>
-<dd>GCM HTTP requests support JSON format in addition to plain text. For more information, see the <a href="gcm.html#send-msg">Architectural Overview</a>.</dd>
-
-<dt><strong>Multicast messages</strong></dt>
-<dd>In GCM you can send the same message to multiple devices simultaneously. For example, a sports app wanting to deliver a score update to fans can now send the message to up to 1000 registration IDs in the same request (requires JSON). For more information, see the <a href="gcm.html#send-msg">Architectural Overview</a>.</dd>
-
-<dt><strong>Multiple senders</strong></dt>
-<dd>Multiple parties can send messages to the same app with one common registration ID. For more information, see <a href="adv.html#multi-senders">Advanced Topics</a>.</dd>
-
-<dt><strong>Time-to-live messages</strong></dt>
-<dd>Apps like video chat and calendar apps can send expiring invitation events with a time-to-live value between 0 and 4 weeks. GCM will store the messages until they expire. A message with a time-to-live value of 0 will not be stored on the GCM server, nor will it be throttled. For more information, see <a href="adv.html#ttl">Advanced Topics</a>.</dd>
-
-<dt><strong>Messages with payload</strong></dt>
-<dd>Apps can use &quot;messages with payload&quot; to deliver  messages of up to 4 Kb. This would be useful in a chat application, for example. To use this feature, simply omit the <code>collapse_key</code> parameter and messages will not be collapsed. GCM will store up to 100 messages. If you exceed that number, all messages will be discarded but you will receive a special message. If an application receives this message, it needs to sync with the server. For more information, see <a href="adv.html#collapsible">Advanced Topics</a>.</dd>
-
-<dt><strong>Canonical registration ID</strong></dt>
-<dd>There may be situations where the server ends up with 2 registration IDs for the same device. If the GCM response contains a registration ID, simply replace the registration ID you have with the one provided. With this feature your application doesn't need to send the device ID to your server anymore. For more information, see <a href="adv.html#canonical">Advanced Topics</a>.</dd>
-</dl>
-
-<h3 id="interop">Relationship between C2DM and GCM</h3>
-
-<p>C2DM and GCM are not interoperable. For example, you cannot post notifications from GCM to C2DM registration IDs, nor can you use C2DM registration IDs as GCM registration IDs. From your server-side application, you must keep track of whether a registration ID is from C2DM or GCM and use the proper endpoint. </p>
-
-<p>As you transition from C2DM to GCM, your server needs to be aware of whether a given registration ID
-contains an old C2DM sender or a new GCM project number. This is the approach we recommend: have the new app version (the one that uses GCM) send a bit along with the registration ID. This bit tells your server that this registration ID is for GCM. If you don't get the extra bit, you mark the registration ID as C2DM. Once no more valid registration IDs are marked as C2DM, you can complete the migration.</p>
-
-<h2 id="migrating">Migrating Your Apps</h2>
-<p>This section describes how to move existing C2DM apps to GCM.</p>
-<h3 id="client">Client changes</h3>
-<p>Migration is simple! Just re-register the client app for your target GCM-enabled platform. For
-  example, see <a href="{@docRoot}google/gcm/client.html#sample-register">Register for GCM</a></p>
-
-<p>After receiving a response from GCM, the registration ID obtained must be sent to the application server. When doing this, the application should indicate that it is sending a GCM registration ID so that the server can distinguish it from existing C2DM registrations.</p>
-
-<h3 id="server">Server changes</h3>
-<p>When the application server receives a GCM registration ID, it should store it and mark it as such.</p>
-<p>Sending messages to GCM devices requires a few changes:</p>
-<ul>
-  <li> The request should be sent to  a new endpoint: <code>https://android.googleapis.com/gcm/send</code>.</li>
-  <li>The Authorization header of the request should contain the API key generated during sign up. This key replaces the deprecated ClientLogin Auth token.</li>
-</ul>
-<p>For example:
-</p>
-<pre>Content-Type:application/json
-Authorization:key=AIzaSyB-1uEai2WiUapxCs2Q0GZYzPu7Udno5aA
-
-{
-  "registration_id" : "APA91bHun4MxP5egoKMwt2KZFBaFUH-1RYqx...",
-  "data" : {
-    "Team" : "Portugal",
-    "Score" : "3",
-    "Player" : "Varela",
-  },
-}</pre>
-<p>For a detailed discussion of this topic and more examples, see the <a href="gcm.html#send-msg">Architectural Overview</a>.</p>
-<p>Eventually, once enough users of your application have migrated to the new service, you might want to take advantage of the new <a href="gcm.html#send-msg">JSON-formatted</a> requests that give access to the full set of features provided by GCM.</p>
-
diff --git a/docs/html/google/gcm/ccs.jd b/docs/html/google/gcm/ccs.jd
deleted file mode 100644
index c4d1b1d..0000000
--- a/docs/html/google/gcm/ccs.jd
+++ /dev/null
@@ -1,963 +0,0 @@
-page.title=GCM Cloud Connection Server (XMPP)
-@jd:body
-
-<div id="qv-wrapper">
-<div id="qv">
-
-
-<h2>In this document</h2>
-
-<ol class="toc">
-  <li><a href="#connecting">Establishing a Connection</a>
-    <ol class="toc">
-      <li><a href="#auth">Authentication</a></li>
-      </ol>
-      </li>
-    <li><a href="#format">Downstream Messages</a>
-      <ol class="toc">
-        <li><a href="#request">Request format</a></li>
-        <li><a href="#response">Response format</a></li>
-        <li><a href="#receipts">Receive delivery receipts</a></li>
-      </ol>
-      </li>
-  <li><a href="#upstream">Upstream Messages</a>
-  </li>
-  <li><a href="#flow">Flow Control</a> </li>
-  <li><a href="#implement">Implementing an XMPP-based App Server</a>
-    <ol class="toc">
-      <li><a href="#smack">Java sample using the Smack library</a></li>
-      <li><a href="#python">Python sample</a></li>
-    </ol>
-  </li>
-</ol>
-
-<h2>See Also</h2>
-
-<ol class="toc">
-<li><a href="server-ref.html">Server Reference</a></li>
-<li><a href="{@docRoot}google/gcm/http.html">HTTP</a></li>
-<li><a href="{@docRoot}google/gcm/gs.html">Getting Started</a></li>
-<li><a href="{@docRoot}google/gcm/server.html">Implementing GCM Server</a></li>
-<li><a href="{@docRoot}google/gcm/client.html">Implementing GCM Client</a></li>
-</ol>
-
-</div>
-</div>
-
-<p>The Google Cloud Messaging (GCM) Cloud Connection Server (CCS) is an XMPP endpoint that provides a
-persistent, asynchronous, bidirectional connection to Google servers. The
-connection can be used to send and receive messages between your server and
-your users' GCM-connected devices.</p>
-
-<p class="note"><strong>Note:</strong> The content in this document
-applies to <a href="http://developer.chrome.com/apps/cloudMessaging">
-GCM with Chrome apps</a> as well as Android.
-
-<p>You can continue to use the HTTP request mechanism to send messages to GCM
-servers, side-by-side with CCS which uses XMPP. Some of the benefits of CCS include:</p>
-
-<ul>
-  <li>The asynchronous nature of XMPP allows you to send more messages with fewer
-resources.</li>
-  <li>Communication is bidirectional&mdash;not only can your server send messages
-to the device, but the device can send messages back to your server.</li>
-  <li>The device can send messages back using the same connection used for receiving,
-thereby improving battery life.</li>
-</ul>
-
-<p>The upstream messaging (device-to-cloud) feature of CCS is part of the Google
-Play services platform. Upstream messaging is available through the
-<a href="{@docRoot}reference/com/google/android/gms/gcm/GoogleCloudMessaging.html">
-{@code GoogleCloudMessaging}</a>
-APIs. For examples, see
-<a href="#implement">Implementing an XMPP-based App Server</a>.</p>
-
-<p class="note"><strong>Note:</strong> See the
-<a href="server-ref.html">Server Reference</a> for a list of all the message
-parameters and which connection server(s) supports them.</p>
-
-<h2 id="connecting">Establishing a Connection</h2>
-
-<p>CCS just uses XMPP as an authenticated transport layer, so you can use most
-XMPP libraries to manage the connection. For an example, see <a href="#smack">
-Java sample using the Smack library</a>.</p>
-
-<p>The CCS XMPP endpoint runs at {@code gcm.googleapis.com:5235}. When testing
-functionality (with non-production users), you should instead connect to
-{@code gcm-preprod.googleapis.com:5236} (note the different port). Regular
-testing on preprod (a smaller environment where the latest CCS builds run) is
-beneficial both for isolating real users from test code, as well as for early
-detection of unexpected behavior changes. Note that a connection receives upstream
-messages destined for its GCM sender ID, regardless of which environment (gcm or
-gcm-preprod) it is connected to. Therefore, test code connecting to
-{@code gcm-preprod.googleapis.com:5236} should use a different GCM sender ID to
-avoid upstream messages from production traffic being sent over test connections.</p>
-
-<p>The connection has two important requirements:</p>
-
-<ul>
-  <li>You must initiate a Transport Layer Security (TLS) connection. Note that
-  CCS doesn't currently support the <a href="http://xmpp.org/rfcs/rfc3920.html"
-  class="external-link" target="_android">STARTTLS extension</a>.</li>
-  <li>CCS requires a SASL PLAIN authentication mechanism using
-  {@code &lt;your_GCM_Sender_Id&gt;&#64;gcm.googleapis.com} (GCM sender ID)
-  and the API key as the password, where the sender ID and API key are the same
-  as described in <a href="gs.html">Getting Started</a>.</li>
-</ul>
-
-<p>If at any point the connection fails, you should immediately reconnect.
-There is no need to back off after a disconnect that happens after
-authentication.</p>
-
-<h3 id="auth">Authentication</h3>
-
-<p>The following snippets illustrate how to perform authentication in CCS.</p>
-<h4>Client</h4>
-<pre>&lt;stream:stream to=&quot;gcm.googleapis.com&quot; 
-        version=&quot;1.0&quot; xmlns=&quot;jabber:client&quot; 
-        xmlns:stream=&quot;http://etherx.jabber.org/streams&quot;/&gt;
-</pre>
-<h4>Server</h4>
-<pre>&lt;str:features xmlns:str=&quot;http://etherx.jabber.org/streams&quot;&gt;
- &lt;mechanisms xmlns=&quot;urn:ietf:params:xml:ns:xmpp-sasl&quot;&gt;
-   &lt;mechanism&gt;X-OAUTH2&lt;/mechanism&gt;
-   &lt;mechanism&gt;X-GOOGLE-TOKEN&lt;/mechanism&gt;
-   &lt;mechanism&gt;PLAIN&lt;/mechanism&gt;
- &lt;/mechanisms&gt;
-&lt;/str:features&gt;
-</pre>
-
-<h4>Client</h4>
-<pre>&lt;auth mechanism=&quot;PLAIN&quot;
-xmlns=&quot;urn:ietf:params:xml:ns:xmpp-sasl&quot;&gt;MTI2MjAwMzQ3OTMzQHByb2plY3RzLmdjbS5hb
-mFTeUIzcmNaTmtmbnFLZEZiOW1oekNCaVlwT1JEQTJKV1d0dw==&lt;/auth&gt;
-</pre>
-
-<h4>Server</h4>
-<pre>&lt;success xmlns=&quot;urn:ietf:params:xml:ns:xmpp-sasl&quot;/&gt;</pre>
-
-<h2 id="format">Downstream Messages</h2>
-<p>Once the XMPP connection is established, CCS and your server use normal XMPP
-<code>&lt;message&gt;</code> stanzas to send JSON-encoded messages back and
-forth. The body of the <code>&lt;message&gt;</code> must be:</p>
-<pre>
-&lt;gcm xmlns:google:mobile:data&gt;
-    <em>JSON payload</em>
-&lt;/gcm&gt;
-</pre>
-
-<p>The JSON payload for regular GCM messages is similar to
-<a href="http.html#request">what the GCM http endpoint uses</a>, with these
-exceptions:</p>
-<ul>
-  <li>There is no support for multiple recipients.</li>
-  <li>{@code to} is used instead of {@code registration_ids}.</li>
-  <li>CCS adds the field {@code message_id}, which is required. This ID uniquely
-identifies the message in an XMPP connection. The ACK or NACK from CCS uses the
-{@code message_id} to identify a message sent from 3rd-party app servers to CCS.
-Therefore, it's important that this {@code message_id} not only be unique (per
-sender ID), but always present.</li>
-</ul>
-
-<p>In addition to regular GCM messages, control messages are sent, indicated by
-the {@code message_type} field in the JSON object. The value can be either
-'ack' or 'nack', or 'control' (see formats below). Any GCM message with an
-unknown {@code message_type} can be ignored by your server.</p>
-
-<p>For each device message your app server receives from CCS, it needs to send
-an ACK message.
-It never needs to send a NACK message. If you don't send an ACK for a message,
-CCS resends it the next time a new XMPP connection is established, unless the
-message expires first.
-</p>
-<p>CCS also sends an ACK or NACK for each server-to-device message. If you do not
-receive either, it means that the TCP connection was closed in the middle of the
-operation and your server needs to resend the messages. See
-<a href="#flow">Flow Control</a> for details.
-</p>
-
-<p class="note"><strong>Note:</strong> See the
-<a href="server-ref.html">Server Reference</a> for a list of all the message
-parameters and which connection server(s) supports them.</p>
-
-<h3 id="request">Request format</h3>
-
-<p>Here is an XMPP stanza containing the JSON message from a 3rd-party app server to CCS:
-
-</p>
-<pre>&lt;message id=&quot;&quot;&gt;
-  &lt;gcm xmlns=&quot;google:mobile:data&quot;&gt;
-  {
-      &quot;to&quot;:&quot;REGISTRATION_ID&quot;,  // &quot;to&quot; replaces &quot;registration_ids&quot;
-      &quot;message_id&quot;:&quot;m-1366082849205&quot; // new required field
-      &quot;data&quot;:
-      {
-          &quot;hello&quot;:&quot;world&quot;,
-      }
-      &quot;time_to_live&quot;:&quot;600&quot;,
-      &quot;delay_while_idle&quot;: true/false,
-      &quot;delivery_receipt_requested&quot;: true/false
-  }
-  &lt;/gcm&gt;
-&lt;/message&gt;
-</pre>
-
-<h3 id="response">Response format</h3>
-
-<p>A CCS response can have 3 possible forms. The first one is a regular 'ack'
-message. But when the response contains an error, there are 2
-different forms the message can take, described below.</p>
-
-<h4 id="ack">ACK message</h4>
-
-<p>Here is an XMPP stanza containing the ACK/NACK message from CCS to 3rd-party app server:
-</p>
-<pre>&lt;message id=&quot;&quot;&gt;
-  &lt;gcm xmlns=&quot;google:mobile:data&quot;&gt;
-  {
-      &quot;from&quot;:&quot;REGID&quot;,
-      &quot;message_id&quot;:&quot;m-1366082849205&quot;
-      &quot;message_type&quot;:&quot;ack&quot;
-  }
-  &lt;/gcm&gt;
-&lt;/message&gt;
-</pre>
-
-<h4 id="nack">NACK message</h4>
-
-<p>A NACK error is a regular XMPP message in which the {@code message_type} status
-message is &quot;nack&quot;. A NACK message contains:</p>
-<ul>
-<li>Nack error code.</li>
-<li>Nack error description.</li>
-</ul>
-
-<p>Below are some examples.</p>
-
-<p>Bad registration:</p>
-
-<pre>&lt;message&gt;
-  &lt;gcm xmlns=&quot;google:mobile:data&quot;&gt;
-  {
-    &quot;message_type&quot;:&quot;nack&quot;,
-    &quot;message_id&quot;:&quot;msgId1&quot;,
-    &quot;from&quot;:&quot;SomeInvalidRegistrationId&quot;,
-    &quot;error&quot;:&quot;BAD_REGISTRATION&quot;,
-    &quot;error_description&quot;:&quot;Invalid token on 'to' field: SomeInvalidRegistrationId&quot;
-  }
-  &lt;/gcm&gt;
-&lt;/message&gt;</pre>
-
-<p>Invalid JSON:</p>
-
-<pre>&lt;message&gt;
- &lt;gcm xmlns=&quot;google:mobile:data&quot;&gt;
- {
-   &quot;message_type&quot;:&quot;nack&quot;,
-   &quot;message_id&quot;:&quot;msgId1&quot;,
-   &quot;from&quot;:&quot;APA91bHFOtaQGSwupt5l1og&quot;,
-   &quot;error&quot;:&quot;INVALID_JSON&quot;,
-   &quot;error_description&quot;:&quot;InvalidJson: JSON_TYPE_ERROR : Field \&quot;time_to_live\&quot; must be a JSON java.lang.Number: abc&quot;
- }
- &lt;/gcm&gt;
-&lt;/message&gt;
-</pre>
-
-<p>Device Message Rate Exceeded:</p>
-
-<pre>&lt;message id=&quot;...&quot;&gt;
-  &lt;gcm xmlns=&quot;google:mobile:data&quot;&gt;
-  {
-    &quot;message_type&quot;:&quot;nack&quot;,
-    &quot;message_id&quot;:&quot;msgId1&quot;,
-    &quot;from&quot;:&quot;REGID&quot;,
-    &quot;error&quot;:&quot;DEVICE_MESSAGE_RATE_EXCEEDED&quot;,
-    &quot;error_description&quot;:&quot;Downstream message rate exceeded for this registration id&quot;
-  }
-  &lt;/gcm&gt;
-&lt;/message&gt;
-</pre>
-
-<p>See the <a href="server-ref.html#table11">Server Reference</a> for a complete list of the
-NACK error codes. Unless otherwise
-indicated, a NACKed message should not be retried. Unexpected NACK error codes
-should be treated the same as {@code INTERNAL_SERVER_ERROR}.</p>
-
-<h4 id="stanza">Stanza error</h4>
-
-<p>You can also get a stanza error in certain cases.
-A stanza error contains:</p>
-<ul>
-<li>Stanza error code.</li>
-<li>Stanza error description (free text).</li>
-</ul>
-<p>For example:</p>
-
-<pre>&lt;message id=&quot;3&quot; type=&quot;error&quot; to=&quot;123456789@gcm.googleapis.com/ABC&quot;&gt;
-  &lt;gcm xmlns=&quot;google:mobile:data&quot;&gt;
-     {&quot;random&quot;: &quot;text&quot;}
-  &lt;/gcm&gt;
-  &lt;error code=&quot;400&quot; type=&quot;modify&quot;&gt;
-    &lt;bad-request xmlns=&quot;urn:ietf:params:xml:ns:xmpp-stanzas&quot;/&gt;
-    &lt;text xmlns=&quot;urn:ietf:params:xml:ns:xmpp-stanzas&quot;&gt;
-      InvalidJson: JSON_PARSING_ERROR : Missing Required Field: message_id\n
-    &lt;/text&gt;
-  &lt;/error&gt;
-&lt;/message&gt;
-</pre>
-
-<h4 id="control">Control messages</h4>
-
-<p>Periodically, CCS needs to close down a connection to perform load balancing. Before it
-closes the connection, CCS sends a {@code CONNECTION_DRAINING} message to indicate that the connection is being drained
-and will be closed soon. "Draining" refers to shutting off the flow of messages coming into a
-connection, but allowing whatever is already in the pipeline to continue. When you receive
-a {@code CONNECTION_DRAINING} message, you should immediately begin sending messages to another CCS
-connection, opening a new connection if necessary. You should, however, keep the original
-connection open and continue receiving messages that may come over the connection (and
-ACKing them)&mdash;CCS handles initiating a connection close when it is ready.</p>
-
-<p>The {@code CONNECTION_DRAINING} message looks like this:</p>
-<pre>&lt;message&gt;
-  &lt;data:gcm xmlns:data=&quot;google:mobile:data&quot;&gt;
-  {
-    &quot;message_type&quot;:&quot;control&quot;
-    &quot;control_type&quot;:&quot;CONNECTION_DRAINING&quot;
-  }
-  &lt;/data:gcm&gt;
-&lt;/message&gt;</pre>
-
-<p>{@code CONNECTION_DRAINING} is currently the only {@code control_type} supported.</p>
-
-<!--Delivery receipts section-->
-
-<h3 id="receipts">Receive delivery receipts</h3>
-
-<p>You can get delivery receipts (sent from CCS to
-your 3rd party app server) when
-a device confirms that it received a message sent by CCS.</p>
-
-<p>To enable this feature, the message your 3rd-party app server sends to CCS must include
-a field called <code>&quot;delivery_receipt_requested&quot;</code>. When this field is set to
-<code>true</code>, CCS sends a delivery receipt when a device confirms that it received a particular message.</p>
-
-<p>Here is an XMPP stanza containing a JSON
-message with <code>&quot;delivery_receipt_requested&quot;</code> set to <code>true</code>:</p>
-
-<pre>&lt;message id=&quot;&quot;&gt;
-  &lt;gcm xmlns=&quot;google:mobile:data&quot;&gt;
-  {
-      &quot;to&quot;:&quot;REGISTRATION_ID&quot;,
-      &quot;message_id&quot;:&quot;m-1366082849205&quot;
-      &quot;data&quot;:
-      {
-          &quot;hello&quot;:&quot;world&quot;,
-      }
-      &quot;time_to_live&quot;:&quot;600&quot;,
-      &quot;delay_while_idle&quot;: true,
-      <strong>&quot;delivery_receipt_requested&quot;: true</strong>
-  }
-  &lt;/gcm&gt;
-&lt;/message&gt;
-</pre>
-
-
-
-<p>Here is an example of the delivery receipt that CCS sends to tell your 3rd-party
-app server that a device received a message that CCS sent it:</p>
-
-</p>
-<pre>&lt;message id=&quot;&quot;&gt;
-  &lt;gcm xmlns=&quot;google:mobile:data&quot;&gt;
-  {
-      &quot;category&quot;:&quot;com.example.yourapp&quot;, // to know which app sent it
-      &quot;data&quot;:
-      {
-         &#x201c;message_status&quot;:&quot;MESSAGE_SENT_TO_DEVICE&quot;,
-         &#x201c;original_message_id&#x201d;:&#x201d;m-1366082849205&#x201d;
-         &#x201c;device_registration_id&#x201d;: &#x201c;REGISTRATION_ID&#x201d;
-      },
-      &quot;message_id&quot;:&quot;dr2:m-1366082849205&quot;,
-      &quot;message_type&quot;:&quot;receipt&quot;,
-      &quot;from&quot;:&quot;gcm.googleapis.com&quot;
-  }
-  &lt;/gcm&gt;
-&lt;/message&gt;</pre>
-
-<p>Note the following:</p>
-
-<ul>
-  <li>The {@code &quot;message_type&quot;} is set to {@code &quot;receipt&quot;}.
-  <li>The {@code &quot;message_status&quot;} is set to {@code &quot;MESSAGE_SENT_TO_DEVICE&quot;},
-  indicating that the device received the message. Notice that in this case,
-{@code &quot;message_status&quot;} is not a field but rather part of the data payload.</li>
-  <li>The receipt message ID consists of the original message ID, but with a
-<code>dr2:</code> prefix. Your 3rd-party app server must send an ACK back with this ID,
-which in this example is {@code dr2:m-1366082849205}.</li>
-  <li>The original message ID, the device registration ID, and the status are inside the
-{@code &quot;data&quot;} field.</li>
-<li>If the connection between CCS and the device is poor, GCM may send multiple, duplicate delivery
- receipts. You can safely ignore such duplicates.</li>
-</ul>
-
-<h2 id="upstream">Upstream Messages</h2>
-
-<p>Using CCS and the
-<a href="{@docRoot}reference/com/google/android/gms/gcm/GoogleCloudMessaging.html">
-{@code GoogleCloudMessaging}</a>
-API, you can send messages from a user's device to the cloud.</p>
-
-<p>Here is how you send an upstream message using the
-<a href="{@docRoot}reference/com/google/android/gms/gcm/GoogleCloudMessaging.html">
-{@code GoogleCloudMessaging}</a>
-API. For a complete example, see <a href="client.html">Implementing GCM Client</a>:</p>
-
-<pre>GoogleCloudMessaging gcm = GoogleCloudMessaging.get(context);
-String GCM_SENDER_ID = "Your-Sender-ID";
-AtomicInteger msgId = new AtomicInteger();
-String id = Integer.toString(msgId.incrementAndGet());
-Bundle data = new Bundle();
-// Bundle data consists of a key-value pair
-data.putString("hello", "world");
-// "time to live" parameter
-// This is optional. It specifies a value in seconds up to 24 hours.
-int ttl = [0 seconds, 24 hours]
-
-gcm.send(GCM_SENDER_ID + "&#64;gcm.googleapis.com", id, ttl, data);
-</pre>
-
-<p>This call generates the necessary XMPP stanza for sending the upstream message.
-The message goes from the app on the device to CCS to the 3rd-party app server.
-The stanza has the following format:</p>
-
-<pre>&lt;message id=&quot;&quot;&gt;
-  &lt;gcm xmlns=&quot;google:mobile:data&quot;&gt;
-  {
-      &quot;category&quot;:&quot;com.example.yourapp&quot;, // to know which app sent it
-      &quot;data&quot;:
-      {
-          &quot;hello&quot;:&quot;world&quot;,
-      },
-      &quot;message_id&quot;:&quot;m-123&quot;,
-      &quot;from&quot;:&quot;REGID&quot;
-  }
-  &lt;/gcm&gt;
-&lt;/message&gt;</pre>
-
-<p>Here is the format of the ACK expected by CCS from 3rd-party app servers in
-response to the above message:</p>
-
-<pre>&lt;message id=&quot;&quot;&gt;
-  &lt;gcm xmlns=&quot;google:mobile:data&quot;&gt;
-  {
-      &quot;to&quot;:&quot;REGID&quot;,
-      &quot;message_id&quot;:&quot;m-123&quot;
-      &quot;message_type&quot;:&quot;ack&quot;
-  }
-  &lt;/gcm&gt;
-&lt;/message&gt;</pre>
-
-
-<h2 id="flow">Flow Control</h2>
-
-<p>Every message sent to CCS receives either an ACK or a NACK response. Messages
-that haven't received one of these responses are considered pending. If the pending
-message count reaches 100, the 3rd-party app server should stop sending new messages
-and wait for CCS to acknowledge some of the existing pending messages as illustrated in
-figure 1:</p>
-
-<img src="{@docRoot}images/gcm/CCS-ack.png">
-
-<p class="img-caption">
-  <strong>Figure 1.</strong> Message/ack flow.
-</p>
-
-<p>Conversely, to avoid overloading the 3rd-party app server, CCS stops sending
-if there are too many unacknowledged messages. Therefore, the 3rd-party app server
-should "ACK" upstream messages, received from the client application via CCS, as soon as possible
-to maintain a constant flow of incoming messages. The aforementioned pending message limit doesn't
-apply to these ACKs. Even if the pending message count reaches 100, the 3rd-party app server
-should continue sending ACKs for messages received from CCS to avoid blocking delivery of new
-upstream messages.</p>
-
-<p>ACKs are only valid within the context of one connection. If the connection is
-closed before a message can be ACKed, the 3rd-party app server should wait for CCS
-to resend the upstream message before ACKing it again. Similarly, all pending messages for which an
-ACK/NACK was not received from CCS before the connection was closed should be sent again.
-</p>
-
-<h2 id="implement">Implementing an XMPP-based App Server</h2>
-
-<p>This section gives examples of implementing an app server that works with CCS.
-Note that a full GCM implementation requires a client-side implementation, in
-addition to the server. For more information, see <a href="client.html">
-Implementing GCM Client</a>.</a>
-
-<h3 id="smack">Java sample using the Smack library</h3>
-
-<p>Here is a sample app server written in Java, using the
-<a href="http://www.igniterealtime.org/projects/smack/">Smack</a> library.</p>
-
-<pre>import org.jivesoftware.smack.ConnectionConfiguration;
-import org.jivesoftware.smack.ConnectionConfiguration.SecurityMode;
-import org.jivesoftware.smack.ConnectionListener;
-import org.jivesoftware.smack.PacketInterceptor;
-import org.jivesoftware.smack.PacketListener;
-import org.jivesoftware.smack.SmackException;
-import org.jivesoftware.smack.SmackException.NotConnectedException;
-import org.jivesoftware.smack.XMPPConnection;
-import org.jivesoftware.smack.XMPPException;
-import org.jivesoftware.smack.filter.PacketTypeFilter;
-import org.jivesoftware.smack.packet.DefaultPacketExtension;
-import org.jivesoftware.smack.packet.Message;
-import org.jivesoftware.smack.packet.Packet;
-import org.jivesoftware.smack.packet.PacketExtension;
-import org.jivesoftware.smack.provider.PacketExtensionProvider;
-import org.jivesoftware.smack.provider.ProviderManager;
-import org.jivesoftware.smack.tcp.XMPPTCPConnection;
-import org.jivesoftware.smack.util.StringUtils;
-import org.json.simple.JSONValue;
-import org.json.simple.parser.ParseException;
-import org.xmlpull.v1.XmlPullParser;
-
-import java.io.IOException;
-import java.util.HashMap;
-import java.util.Map;
-import java.util.UUID;
-import java.util.logging.Level;
-import java.util.logging.Logger;
-
-import javax.net.ssl.SSLSocketFactory;
-
-/**
- * Sample Smack implementation of a client for GCM Cloud Connection Server. This
- * code can be run as a standalone CCS client.
- *
- * &lt;p&gt;For illustration purposes only.
- */
-public class SmackCcsClient {
-
-    private static final Logger logger = Logger.getLogger(&quot;SmackCcsClient&quot;);
-
-    private static final String GCM_SERVER = &quot;gcm.googleapis.com&quot;;
-    private static final int GCM_PORT = 5235;
-
-    private static final String GCM_ELEMENT_NAME = &quot;gcm&quot;;
-    private static final String GCM_NAMESPACE = &quot;google:mobile:data&quot;;
-
-    static {
-
-        ProviderManager.addExtensionProvider(GCM_ELEMENT_NAME, GCM_NAMESPACE,
-            new PacketExtensionProvider() {
-                &#64;Override
-                public PacketExtension parseExtension(XmlPullParser parser) throws
-                        Exception {
-                    String json = parser.nextText();
-                    return new GcmPacketExtension(json);
-                }
-            });
-    }
-
-    private XMPPConnection connection;
-
-    /**
-     * Indicates whether the connection is in draining state, which means that it
-     * will not accept any new downstream messages.
-     */
-    protected volatile boolean connectionDraining = false;
-
-    /**
-     * Sends a downstream message to GCM.
-     *
-     * &#64;return true if the message has been successfully sent.
-     */
-    public boolean sendDownstreamMessage(String jsonRequest) throws
-            NotConnectedException {
-        if (!connectionDraining) {
-            send(jsonRequest);
-            return true;
-        }
-        logger.info(&quot;Dropping downstream message since the connection is draining&quot;);
-        return false;
-    }
-
-    /**
-     * Returns a random message id to uniquely identify a message.
-     *
-     * &lt;p&gt;Note: This is generated by a pseudo random number generator for
-     * illustration purpose, and is not guaranteed to be unique.
-     */
-    public String nextMessageId() {
-        return &quot;m-&quot; + UUID.randomUUID().toString();
-    }
-
-    /**
-     * Sends a packet with contents provided.
-     */
-    protected void send(String jsonRequest) throws NotConnectedException {
-        Packet request = new GcmPacketExtension(jsonRequest).toPacket();
-        connection.sendPacket(request);
-    }
-
-    /**
-     * Handles an upstream data message from a device application.
-     *
-     * &lt;p&gt;This sample echo server sends an echo message back to the device.
-     * Subclasses should override this method to properly process upstream messages.
-     */
-    protected void handleUpstreamMessage(Map&lt;String, Object&gt; jsonObject) {
-        // PackageName of the application that sent this message.
-        String category = (String) jsonObject.get(&quot;category&quot;);
-        String from = (String) jsonObject.get(&quot;from&quot;);
-        &#64;SuppressWarnings(&quot;unchecked&quot;)
-        Map&lt;String, String&gt; payload = (Map&lt;String, String&gt;) jsonObject.get(&quot;data&quot;);
-        payload.put(&quot;ECHO&quot;, &quot;Application: &quot; + category);
-
-        // Send an ECHO response back
-        String echo = createJsonMessage(from, nextMessageId(), payload,
-                &quot;echo:CollapseKey&quot;, null, false);
-
-        try {
-            sendDownstreamMessage(echo);
-        } catch (NotConnectedException e) {
-            logger.log(Level.WARNING, &quot;Not connected anymore, echo message is
-                    not sent&quot;, e);
-        }
-    }
-
-    /**
-     * Handles an ACK.
-     *
-     * &lt;p&gt;Logs a {@code INFO} message, but subclasses could override it to
-     * properly handle ACKs.
-     */
-    protected void handleAckReceipt(Map&lt;String, Object&gt; jsonObject) {
-        String messageId = (String) jsonObject.get(&quot;message_id&quot;);
-        String from = (String) jsonObject.get(&quot;from&quot;);
-        logger.log(Level.INFO, &quot;handleAckReceipt() from: &quot; + from + &quot;,
-                messageId: &quot; + messageId);
-    }
-
-    /**
-     * Handles a NACK.
-     *
-     * &lt;p&gt;Logs a {@code INFO} message, but subclasses could override it to
-     * properly handle NACKs.
-     */
-    protected void handleNackReceipt(Map&lt;String, Object&gt; jsonObject) {
-        String messageId = (String) jsonObject.get(&quot;message_id&quot;);
-        String from = (String) jsonObject.get(&quot;from&quot;);
-        logger.log(Level.INFO, &quot;handleNackReceipt() from: &quot; + from + &quot;,
-                messageId: &quot; + messageId);
-    }
-
-    protected void handleControlMessage(Map&lt;String, Object&gt; jsonObject) {
-        logger.log(Level.INFO, &quot;handleControlMessage(): &quot; + jsonObject);
-        String controlType = (String) jsonObject.get(&quot;control_type&quot;);
-        if (&quot;CONNECTION_DRAINING&quot;.equals(controlType)) {
-            connectionDraining = true;
-        } else {
-            logger.log(Level.INFO, &quot;Unrecognized control type: %s. This could
-                    happen if new features are &quot; + &quot;added to the CCS protocol.&quot;,
-                    controlType);
-        }
-    }
-
-    /**
-     * Creates a JSON encoded GCM message.
-     *
-     * &#64;param to RegistrationId of the target device (Required).
-     * &#64;param messageId Unique messageId for which CCS sends an
-     *         &quot;ack/nack&quot; (Required).
-     * &#64;param payload Message content intended for the application. (Optional).
-     * &#64;param collapseKey GCM collapse_key parameter (Optional).
-     * &#64;param timeToLive GCM time_to_live parameter (Optional).
-     * &#64;param delayWhileIdle GCM delay_while_idle parameter (Optional).
-     * &#64;return JSON encoded GCM message.
-     */
-    public static String createJsonMessage(String to, String messageId,
-            Map&lt;String, String&gt; payload, String collapseKey, Long timeToLive,
-            Boolean delayWhileIdle) {
-        Map&lt;String, Object&gt; message = new HashMap&lt;String, Object&gt;();
-        message.put(&quot;to&quot;, to);
-        if (collapseKey != null) {
-            message.put(&quot;collapse_key&quot;, collapseKey);
-        }
-        if (timeToLive != null) {
-            message.put(&quot;time_to_live&quot;, timeToLive);
-        }
-        if (delayWhileIdle != null &amp;&amp; delayWhileIdle) {
-            message.put(&quot;delay_while_idle&quot;, true);
-        }
-      message.put(&quot;message_id&quot;, messageId);
-      message.put(&quot;data&quot;, payload);
-      return JSONValue.toJSONString(message);
-    }
-
-    /**
-     * Creates a JSON encoded ACK message for an upstream message received
-     * from an application.
-     *
-     * &#64;param to RegistrationId of the device who sent the upstream message.
-     * &#64;param messageId messageId of the upstream message to be acknowledged to CCS.
-     * &#64;return JSON encoded ack.
-     */
-        protected static String createJsonAck(String to, String messageId) {
-        Map&lt;String, Object&gt; message = new HashMap&lt;String, Object&gt;();
-        message.put(&quot;message_type&quot;, &quot;ack&quot;);
-        message.put(&quot;to&quot;, to);
-        message.put(&quot;message_id&quot;, messageId);
-        return JSONValue.toJSONString(message);
-    }
-
-    /**
-     * Connects to GCM Cloud Connection Server using the supplied credentials.
-     *
-     * &#64;param senderId Your GCM project number
-     * &#64;param apiKey API Key of your project
-     */
-    public void connect(long senderId, String apiKey)
-            throws XMPPException, IOException, SmackException {
-        ConnectionConfiguration config =
-                new ConnectionConfiguration(GCM_SERVER, GCM_PORT);
-        config.setSecurityMode(SecurityMode.enabled);
-        config.setReconnectionAllowed(true);
-        config.setRosterLoadedAtLogin(false);
-        config.setSendPresence(false);
-        config.setSocketFactory(SSLSocketFactory.getDefault());
-
-        connection = new XMPPTCPConnection(config);
-        connection.connect();
-
-        connection.addConnectionListener(new LoggingConnectionListener());
-
-        // Handle incoming packets
-        connection.addPacketListener(new PacketListener() {
-
-            &#64;Override
-            public void processPacket(Packet packet) {
-                logger.log(Level.INFO, &quot;Received: &quot; + packet.toXML());
-                Message incomingMessage = (Message) packet;
-                GcmPacketExtension gcmPacket =
-                        (GcmPacketExtension) incomingMessage.
-                        getExtension(GCM_NAMESPACE);
-                String json = gcmPacket.getJson();
-                try {
-                    &#64;SuppressWarnings(&quot;unchecked&quot;)
-                    Map&lt;String, Object&gt; jsonObject =
-                            (Map&lt;String, Object&gt;) JSONValue.
-                            parseWithException(json);
-
-                    // present for &quot;ack&quot;/&quot;nack&quot;, null otherwise
-                    Object messageType = jsonObject.get(&quot;message_type&quot;);
-
-                    if (messageType == null) {
-                        // Normal upstream data message
-                        handleUpstreamMessage(jsonObject);
-
-                        // Send ACK to CCS
-                        String messageId = (String) jsonObject.get(&quot;message_id&quot;);
-                        String from = (String) jsonObject.get(&quot;from&quot;);
-                        String ack = createJsonAck(from, messageId);
-                        send(ack);
-                    } else if (&quot;ack&quot;.equals(messageType.toString())) {
-                          // Process Ack
-                          handleAckReceipt(jsonObject);
-                    } else if (&quot;nack&quot;.equals(messageType.toString())) {
-                          // Process Nack
-                          handleNackReceipt(jsonObject);
-                    } else if (&quot;control&quot;.equals(messageType.toString())) {
-                          // Process control message
-                          handleControlMessage(jsonObject);
-                    } else {
-                          logger.log(Level.WARNING,
-                                  &quot;Unrecognized message type (%s)&quot;,
-                                  messageType.toString());
-                    }
-                } catch (ParseException e) {
-                    logger.log(Level.SEVERE, &quot;Error parsing JSON &quot; + json, e);
-                } catch (Exception e) {
-                    logger.log(Level.SEVERE, &quot;Failed to process packet&quot;, e);
-                }
-            }
-        }, new PacketTypeFilter(Message.class));
-
-        // Log all outgoing packets
-        connection.addPacketInterceptor(new PacketInterceptor() {
-            &#64;Override
-                public void interceptPacket(Packet packet) {
-                    logger.log(Level.INFO, &quot;Sent: {0}&quot;, packet.toXML());
-                }
-            }, new PacketTypeFilter(Message.class));
-
-        connection.login(senderId + &quot;&#64;gcm.googleapis.com&quot;, apiKey);
-    }
-
-    public static void main(String[] args) throws Exception {
-        final long senderId = 1234567890L; // your GCM sender id
-        final String password = &quot;Your API key&quot;;
-
-        SmackCcsClient ccsClient = new SmackCcsClient();
-
-        ccsClient.connect(senderId, password);
-
-        // Send a sample hello downstream message to a device.
-        String toRegId = &quot;RegistrationIdOfTheTargetDevice&quot;;
-        String messageId = ccsClient.nextMessageId();
-        Map&lt;String, String&gt; payload = new HashMap&lt;String, String&gt;();
-        payload.put(&quot;Hello&quot;, &quot;World&quot;);
-        payload.put(&quot;CCS&quot;, &quot;Dummy Message&quot;);
-        payload.put(&quot;EmbeddedMessageId&quot;, messageId);
-        String collapseKey = &quot;sample&quot;;
-        Long timeToLive = 10000L;
-        String message = createJsonMessage(toRegId, messageId, payload,
-                collapseKey, timeToLive, true);
-
-        ccsClient.sendDownstreamMessage(message);
-    }
-
-    /**
-     * XMPP Packet Extension for GCM Cloud Connection Server.
-     */
-    private static final class GcmPacketExtension extends DefaultPacketExtension {
-
-        private final String json;
-
-        public GcmPacketExtension(String json) {
-            super(GCM_ELEMENT_NAME, GCM_NAMESPACE);
-            this.json = json;
-        }
-
-        public String getJson() {
-            return json;
-        }
-
-        &#64;Override
-        public String toXML() {
-            return String.format(&quot;&lt;%s xmlns=\&quot;%s\&quot;&gt;%s&lt;/%s&gt;&quot;,
-                    GCM_ELEMENT_NAME, GCM_NAMESPACE,
-                    StringUtils.escapeForXML(json), GCM_ELEMENT_NAME);
-        }
-
-        public Packet toPacket() {
-            Message message = new Message();
-            message.addExtension(this);
-            return message;
-        }
-    }
-
-    private static final class LoggingConnectionListener
-            implements ConnectionListener {
-
-        &#64;Override
-        public void connected(XMPPConnection xmppConnection) {
-            logger.info(&quot;Connected.&quot;);
-        }
-
-        &#64;Override
-        public void authenticated(XMPPConnection xmppConnection) {
-            logger.info(&quot;Authenticated.&quot;);
-        }
-
-        &#64;Override
-        public void reconnectionSuccessful() {
-            logger.info(&quot;Reconnecting..&quot;);
-        }
-
-        &#64;Override
-        public void reconnectionFailed(Exception e) {
-            logger.log(Level.INFO, &quot;Reconnection failed.. &quot;, e);
-        }
-
-        &#64;Override
-        public void reconnectingIn(int seconds) {
-            logger.log(Level.INFO, &quot;Reconnecting in %d secs&quot;, seconds);
-        }
-
-        &#64;Override
-        public void connectionClosedOnError(Exception e) {
-            logger.info(&quot;Connection closed on error.&quot;);
-        }
-
-        &#64;Override
-        public void connectionClosed() {
-            logger.info(&quot;Connection closed.&quot;);
-        }
-    }
-}</pre>
-
-<h3 id="python">Python sample</h3>
-
-<p>Here is an example of a CCS app server written in Python. This sample echo
-server sends an initial message, and for every upstream message received, it sends
-a dummy response back to the application that sent the upstream message. This
-example illustrates how to connect, send, and receive GCM messages using XMPP. It
-shouldn't be used as-is on a production deployment.</p>
-
-<pre>
-#!/usr/bin/python
-import sys, json, xmpp, random, string
-
-SERVER = 'gcm.googleapis.com'
-PORT = 5235
-USERNAME = "Your GCM Sender Id"
-PASSWORD = "API Key"
-REGISTRATION_ID = "Registration Id of the target device"
-
-unacked_messages_quota = 100
-send_queue = []
-
-# Return a random alphanumerical id
-def random_id():
-  rid = ''
-  for x in range(8): rid += random.choice(string.ascii_letters + string.digits)
-  return rid
-
-def message_callback(session, message):
-  global unacked_messages_quota
-  gcm = message.getTags('gcm')
-  if gcm:
-    gcm_json = gcm[0].getData()
-    msg = json.loads(gcm_json)
-    if not msg.has_key('message_type'):
-      # Acknowledge the incoming message immediately.
-      send({'to': msg['from'],
-            'message_type': 'ack',
-            'message_id': msg['message_id']})
-      # Queue a response back to the server.
-      if msg.has_key('from'):
-        # Send a dummy echo response back to the app that sent the upstream message.
-        send_queue.append({'to': msg['from'],
-                           'message_id': random_id(),
-                           'data': {'pong': 1}})
-    elif msg['message_type'] == 'ack' or msg['message_type'] == 'nack':
-      unacked_messages_quota += 1
-
-def send(json_dict):
-  template = (&quot;&lt;message&gt;&lt;gcm xmlns='google:mobile:data'&gt;{1}&lt;/gcm&gt;&lt;/message&gt;&quot;)
-  client.send(xmpp.protocol.Message(
-      node=template.format(client.Bind.bound[0], json.dumps(json_dict))))
-
-def flush_queued_messages():
-  global unacked_messages_quota
-  while len(send_queue) and unacked_messages_quota &gt; 0:
-    send(send_queue.pop(0))
-    unacked_messages_quota -= 1
-
-client = xmpp.Client('gcm.googleapis.com', debug=['socket'])
-client.connect(server=(SERVER,PORT), secure=1, use_srv=False)
-auth = client.auth(USERNAME, PASSWORD)
-if not auth:
-  print 'Authentication failed!'
-  sys.exit(1)
-
-client.RegisterHandler('message', message_callback)
-
-send_queue.append({'to': REGISTRATION_ID,
-                   'message_id': 'reg_id',
-                   'data': {'message_destination': 'RegId',
-                            'message_id': random_id()}})
-
-while True:
-  client.Process(1)
-  flush_queued_messages()</pre>
diff --git a/docs/html/google/gcm/client.jd b/docs/html/google/gcm/client.jd
deleted file mode 100644
index 9cb3f84..0000000
--- a/docs/html/google/gcm/client.jd
+++ /dev/null
@@ -1,689 +0,0 @@
-page.title=Implementing GCM Client on Android
-page.tags=cloud,push,messaging
-@jd:body
-
-<div id="qv-wrapper">
-<div id="qv">
-
-
-<h2>In this document</h2>
-
-<ol class="toc">
-<li><a href="#play-services">Set Up Google Play Services</a></li>
-<li><a href="#manifest">Edit Your Application's Manifest</a></li>
-<li><a href="#app">Write Your Application</a>
-  <ol class="toc">
-    <li><a href="#sample-play">Check for Google Play Services APK</a></li>
-    <li><a href="#sample-register">Register for GCM</a></li>
-    <li><a href="#sample-receive">Receive a downstream message</a></li>
-    <li><a href="#sample-send">Send an upstream message</a></li>
-  </ol>
-  <li><a href="#run">Running the Sample</a></li>
-  <li><a href="#stats">Viewing Statistics</a></li>
-</li>
-
-</ol>
-
-<h2>See Also</h2>
-
-<ol class="toc">
-<li><a href="gs.html">Getting Started</a></li>
-<li><a href="server.html">Implementing GCM Server</a></li>
-</ol>
-
-</div>
-</div>
-
-<p>A Google Cloud Messaging (GCM) Android client is a GCM-enabled app that runs on an
-Android device. To write your client code, we recommend that you use the
-<a href="{@docRoot}reference/com/google/android/gms/gcm/package-summary.html">
-{@code GoogleCloudMessaging}</a> API.</p>
-
-<p>Here are the requirements for running a GCM Android client:</p>
-
-<ul>
-  <li>At a bare minimum, GCM requires devices running Android 2.2 or higher that also have the
-Google Play Store application installed, or an emulator running Android 2.2
-with Google APIs. Note that you are not limited to deploying your
-Android applications through Google Play Store.</li>
-  <li>However, if you want to continue to use new GCM features that are distributed
-through Google Play Services, the device must be running Android 2.3 or higher, or
-you can use an emulator running Android 2.3 with Google APIs.</li>
-<li>On Android devices, GCM uses an existing connection for Google services. For
-pre-3.0 devices, this requires users to set up their Google accounts on their mobile
-devices. A Google account is not a requirement on devices running Android 4.0.4 or higher.</li>
-
-</ul>
-
-<p>A full GCM implementation requires both a client implementation and a server
-implementation. For more
-information about implementing the server side, see <a href="server.html">
-Implementing GCM Server</a>.</p>
-
-<p>The following sections walk you through the steps involved in writing a GCM
-client-side application. Your client app can be arbitrarily complex, but at bare
-minimum, a GCM client app must include code to register (and thereby get a
-registration ID), and a broadcast receiver to receive messages sent by GCM.
-</p>
-
-<h2 id="play-services">Step 1: Set Up Google Play Services</h2>
-
-<p>To write your client application, use the
-<a href="{@docRoot}reference/com/google/android/gms/gcm/package-summary.html">
-{@code GoogleCloudMessaging}</a> API.
-To use this API, you must set up your project to use the Google Play services SDK,
-as described in <a href="/google/play-services/setup.html">Setup Google Play
-Services SDK</a>.</p>
-
-<p class="note"><strong>Caution:</strong> When you add the Play Services library to
-your project, be sure to add it <em>with resources</em>, as described in
-<a href="{@docRoot}google/play-services/setup.html#Setup">
-Setup Google Play Services SDK</a>. The key point is that you must
-<em>reference</em> the library&mdash;simply adding a {@code .jar} file to
-your Eclipse project will not work. You must follow the directions
-for referencing a library, or your app won't be able to access
-the library's resources, and it won't run properly.
-If you're using Android Studio, this is the string to add to the
-{@code dependency} section of your application's {@code build.gradle} file:</p>
-
-<pre>dependencies {
-  compile "com.google.android.gms:play-services:3.1.+"
-}
-</pre>
-
-
-<h2 id="manifest">Step 2: Edit Your Application's Manifest</h2>
-
-<p>Add the following to your application's manifest:</p>
-<ul>
-  <li>The <code>com.google.android.c2dm.permission.RECEIVE</code> permission so
-the Android application can register and receive messages.</li>
-  <li>The <code>android.permission.INTERNET</code> permission so the Android
-application can send the registration ID to the 3rd party server.</li>
-  <li>The <code>android.permission.WAKE_LOCK</code> permission so the application
-can keep the processor from sleeping when a message is received. Optional&mdash;use
-only if the app wants to keep the device from sleeping.</li>
-  <li>An <code>applicationPackage + &quot;.permission.C2D_MESSAGE&quot;</code>
-permission to prevent other Android applications from registering and receiving
-the Android application's messages. The permission name must exactly match this
-pattern&mdash;otherwise the Android application will not receive the messages.</li>
-   <li>A receiver for <code>com.google.android.c2dm.intent.RECEIVE</code>, with
-the category set
-as <code>applicationPackage</code>. The receiver should require the
-<code>com.google.android.c2dm.permission.SEND</code> permission, so that only the GCM
-Framework can send a message to it. If your app uses an {@link android.app.IntentService}
-(not required, but a common pattern), this receiver should be an instance of
-{@link android.support.v4.content.WakefulBroadcastReceiver}.
-A {@link android.support.v4.content.WakefulBroadcastReceiver} takes care of
-creating and managing a
-<a href="{@docRoot}reference/android/os/PowerManager.html#PARTIAL_WAKE_LOCK">
-partial wake lock</a> for your app.</li>
-
-<li>A {@link android.app.Service} (typically an {@link android.app.IntentService})
-to which the {@link android.support.v4.content.WakefulBroadcastReceiver} passes off
-the work of handling the GCM message, while ensuring that the device does not
-go back to sleep in the process. Including an {@link android.app.IntentService} is
-optional&mdash;you could choose to process your messages in a regular
-{@link android.content.BroadcastReceiver} instead, but realistically, most apps will
-use a {@link android.app.IntentService}.
-</li>
-  <li>If the GCM feature is critical to the Android application's function, be sure to
-set <code>android:minSdkVersion=&quot;8&quot;</code> or higher in the manifest. This
-ensures that the Android application cannot be installed in an environment in which it
-could not run properly. </li>
-</ul>
-
-<p>Here are excerpts from a sample manifest that supports GCM:</p>
-
-<pre class="prettyprint pretty-xml">
-&lt;manifest package="com.example.gcm" ...&gt;
-
-    &lt;uses-sdk android:minSdkVersion="8" android:targetSdkVersion="17"/&gt;
-    &lt;uses-permission android:name="android.permission.INTERNET" /&gt;
-    &lt;uses-permission android:name="android.permission.GET_ACCOUNTS" /&gt;
-    &lt;uses-permission android:name="android.permission.WAKE_LOCK" /&gt;
-    &lt;uses-permission android:name="com.google.android.c2dm.permission.RECEIVE" /&gt;
-
-    &lt;permission android:name="com.example.gcm.permission.C2D_MESSAGE"
-        android:protectionLevel="signature" /&gt;
-    &lt;uses-permission android:name="com.example.gcm.permission.C2D_MESSAGE" /&gt;
-
-    &lt;application ...&gt;
-        &lt;receiver
-            android:name=".GcmBroadcastReceiver"
-            android:permission="com.google.android.c2dm.permission.SEND" &gt;
-            &lt;intent-filter&gt;
-                &lt;action android:name="com.google.android.c2dm.intent.RECEIVE" /&gt;
-                &lt;category android:name="com.example.gcm" /&gt;
-            &lt;/intent-filter&gt;
-        &lt;/receiver&gt;
-        &lt;service android:name=".GcmIntentService" /&gt;
-    &lt;/application&gt;
-
-&lt;/manifest&gt;
-</pre>
-
-<h2 id="app"> Step 3: Write Your Application</h2>
-
-<p>Finally, write your application. This section features a sample client
-application that illustrates how to use the
-<a href="{@docRoot}reference/com/google/android/gms/gcm/GoogleCloudMessaging.html">
-{@code GoogleCloudMessaging}</a> API. The sample consists of a main activity
-({@code DemoActivity}), a {@link android.support.v4.content.WakefulBroadcastReceiver}
-({@code GcmBroadcastReceiver}), and an {@link android.app.IntentService}
-({@code GcmIntentService}). You can find the complete source code for this sample at the
-<a href="http://code.google.com/p/gcm">open source site</a>.</p>
-
-<p>Note the following:</p>
-
-<ul>
-  <li>Among other things, the sample illustrates registration and upstream
-(device-to-cloud) messaging. Upstream messaging only applies to apps that are running against a
-<a href="ccs.html">CCS</a> (XMPP) server; HTTP-based servers don't support upstream messaging.</li>
-  <li>The <a href="{@docRoot}reference/com/google/android/gms/gcm/GoogleCloudMessaging.html">
-  {@code GoogleCloudMessaging}</a>
-registration APIs replace the old registration process, which was based on the
-now-obsolete client helper library. While the old registration process still works,
-we encourage you to use the newer
-<a href="{@docRoot}reference/com/google/android/gms/gcm/GoogleCloudMessaging.html">
-{@code GoogleCloudMessaging}</a>
-registration APIs, regardless of your underlying server.</li>
-</ul>
-
-<h3 id="sample-play">Check for Google Play Services APK</h3>
-
-<p>As described in <a href="{@docRoot}google/play-services/setup.html">
-Setup Google Play Services SDK</a>, apps that rely on the Play Services SDK
-should always check the device for a compatible Google Play services APK before
-accessing Google Play services features. In the sample app this check is done in
-two places: in the main activity's {@code onCreate()} method, and in its
-{@code onResume()} method. The check in {@code onCreate()} ensures that the app
-can't be used without a successful check. The check in {@code onResume()} ensures
-that if the user returns to the running app through some other means, such as
-through the back button, the check is still performed. If the
-device doesn't have a compatible Google Play services APK, your app can call
-{@code GooglePlayServicesUtil.getErrorDialog()} to allow users to download the
-APK from the Google Play Store or enable it in the device's system settings.
-For example:</p>
-
-<pre>private final static int PLAY_SERVICES_RESOLUTION_REQUEST = 9000;
-...
-&#64;Override
-public void onCreate(Bundle savedInstanceState) {
-    super.onCreate(savedInstanceState);
-
-    setContentView(R.layout.main);
-    mDisplay = (TextView) findViewById(R.id.display);
-
-    context = getApplicationContext();
-
-    // Check device for Play Services APK.
-    if (checkPlayServices()) {
-        // If this check succeeds, proceed with normal processing.
-        // Otherwise, prompt user to get valid Play Services APK.
-        ...
-    }
-}
-
-// You need to do the Play Services APK check here too.
-&#64;Override
-protected void onResume() {
-    super.onResume();
-    checkPlayServices();
-}
-
-/**
- * Check the device to make sure it has the Google Play Services APK. If
- * it doesn't, display a dialog that allows users to download the APK from
- * the Google Play Store or enable it in the device's system settings.
- */
-private boolean checkPlayServices() {
-    int resultCode = GooglePlayServicesUtil.isGooglePlayServicesAvailable(this);
-    if (resultCode != ConnectionResult.SUCCESS) {
-        if (GooglePlayServicesUtil.isUserRecoverableError(resultCode)) {
-            GooglePlayServicesUtil.getErrorDialog(resultCode, this,
-                    PLAY_SERVICES_RESOLUTION_REQUEST).show();
-        } else {
-            Log.i(TAG, "This device is not supported.");
-            finish();
-        }
-        return false;
-    }
-    return true;
-}</pre>
-
-<h3 id="sample-register">Register for GCM</h3>
-<p>An Android application needs to register with GCM servers before it can receive
-messages. When an app registers, it receives a registration ID, which it can then
-store for future use (note that registration IDs must be kept secret). In the
-following snippet the {@code onCreate()} method in the sample app's
-main activity checks to see if the app is already registered with GCM and with
-the server:</p>
-
-<pre>/**
- * Main UI for the demo app.
- */
-public class DemoActivity extends Activity {
-
-    public static final String EXTRA_MESSAGE = "message";
-    public static final String PROPERTY_REG_ID = "registration_id";
-    private static final String PROPERTY_APP_VERSION = "appVersion";
-    private final static int PLAY_SERVICES_RESOLUTION_REQUEST = 9000;
-
-    /**
-     * Substitute you own sender ID here. This is the project number you got
-     * from the API Console, as described in "Getting Started."
-     */
-    String SENDER_ID = "Your-Sender-ID";
-
-    /**
-     * Tag used on log messages.
-     */
-    static final String TAG = "GCMDemo";
-
-    TextView mDisplay;
-    GoogleCloudMessaging gcm;
-    AtomicInteger msgId = new AtomicInteger();
-    SharedPreferences prefs;
-    Context context;
-
-    String regid;
-
-    &#64;Override
-    public void onCreate(Bundle savedInstanceState) {
-        super.onCreate(savedInstanceState);
-
-        setContentView(R.layout.main);
-        mDisplay = (TextView) findViewById(R.id.display);
-
-        context = getApplicationContext();
-
-        // Check device for Play Services APK. If check succeeds, proceed with
-        //  GCM registration.
-        if (checkPlayServices()) {
-            gcm = GoogleCloudMessaging.getInstance(this);
-            regid = getRegistrationId(context);
-
-            if (regid.isEmpty()) {
-                registerInBackground();
-            }
-        } else {
-            Log.i(TAG, "No valid Google Play Services APK found.");
-        }
-    }
-...
-}</pre>
-
-<p>The app calls {@code getRegistrationId()} to see whether there is an existing
-registration ID stored in shared preferences:</p>
-
-<pre>/**
- * Gets the current registration ID for application on GCM service.
- * &lt;p&gt;
- * If result is empty, the app needs to register.
- *
- * &#64;return registration ID, or empty string if there is no existing
- *         registration ID.
- */
-private String getRegistrationId(Context context) {
-    final SharedPreferences prefs = getGCMPreferences(context);
-    String registrationId = prefs.getString(PROPERTY_REG_ID, "");
-    if (registrationId.isEmpty()) {
-        Log.i(TAG, "Registration not found.");
-        return "";
-    }
-    // Check if app was updated; if so, it must clear the registration ID
-    // since the existing registration ID is not guaranteed to work with
-    // the new app version.
-    int registeredVersion = prefs.getInt(PROPERTY_APP_VERSION, Integer.MIN_VALUE);
-    int currentVersion = getAppVersion(context);
-    if (registeredVersion != currentVersion) {
-        Log.i(TAG, "App version changed.");
-        return "";
-    }
-    return registrationId;
-}
-...
-/**
- * &#64;return Application's {&#64;code SharedPreferences}.
- */
-private SharedPreferences getGCMPreferences(Context context) {
-    // This sample app persists the registration ID in shared preferences, but
-    // how you store the registration ID in your app is up to you.
-    return getSharedPreferences(DemoActivity.class.getSimpleName(),
-            Context.MODE_PRIVATE);
-}</pre>
-
-<p>If the registration ID doesn't exist or the app was updated,
-{@code getRegistrationId()} returns an empty string
-to indicate that the app needs to get a new registration ID. {@code getRegistrationId()} calls
-the following method to check the app version:</p>
-
-<pre>/**
- * &#64;return Application's version code from the {&#64;code PackageManager}.
- */
-private static int getAppVersion(Context context) {
-    try {
-        PackageInfo packageInfo = context.getPackageManager()
-                .getPackageInfo(context.getPackageName(), 0);
-        return packageInfo.versionCode;
-    } catch (NameNotFoundException e) {
-        // should never happen
-        throw new RuntimeException("Could not get package name: " + e);
-    }
-}</pre>
-
-
-<p>If there isn't a valid existing registration ID, {@code DemoActivity} calls the
-following {@code registerInBackground()} method to register. Note that because the GCM
-methods {@code register()} and {@code unregister()} are blocking, this has to
-take place on a background thread. This sample uses {@link android.os.AsyncTask}
-to accomplish this:</p>
-
-<pre>
-/**
- * Registers the application with GCM servers asynchronously.
- * &lt;p&gt;
- * Stores the registration ID and app versionCode in the application's
- * shared preferences.
- */
-private void registerInBackground() {
-    new AsyncTask<Void, Void, String>() {
-        &#64;Override
-        protected String doInBackground(Void... params) {
-            String msg = "";
-            try {
-                if (gcm == null) {
-                    gcm = GoogleCloudMessaging.getInstance(context);
-                }
-                regid = gcm.register(SENDER_ID);
-                msg = "Device registered, registration ID=" + regid;
-
-                // You should send the registration ID to your server over HTTP,
-                // so it can use GCM/HTTP or CCS to send messages to your app.
-                // The request to your server should be authenticated if your app
-                // is using accounts.
-                sendRegistrationIdToBackend();
-
-                // For this demo: we don't need to send it because the device
-                // will send upstream messages to a server that echo back the
-                // message using the 'from' address in the message.
-
-                // Persist the registration ID - no need to register again.
-                storeRegistrationId(context, regid);
-            } catch (IOException ex) {
-                msg = "Error :" + ex.getMessage();
-                // If there is an error, don't just keep trying to register.
-                // Require the user to click a button again, or perform
-                // exponential back-off.
-            }
-            return msg;
-        }
-
-        &#64;Override
-        protected void onPostExecute(String msg) {
-            mDisplay.append(msg + "\n");
-        }
-    }.execute(null, null, null);
-    ...
-}</pre>
-
-<p>Once you've received your registration ID, send it to your server:</p>
-<pre>
-/**
- * Sends the registration ID to your server over HTTP, so it can use GCM/HTTP
- * or CCS to send messages to your app. Not needed for this demo since the
- * device sends upstream messages to a server that echoes back the message
- * using the 'from' address in the message.
- */
-private void sendRegistrationIdToBackend() {
-    // Your implementation here.
-}</pre>
-
-<p>After registering, the app calls {@code storeRegistrationId()} to store the
-registration ID in shared preferences for future use. This is just one way of
-persisting a registration ID. You might choose to use a different approach in
-your app:</p>
-
-<pre>/**
- * Stores the registration ID and app versionCode in the application's
- * {&#64;code SharedPreferences}.
- *
- * &#64;param context application's context.
- * &#64;param regId registration ID
- */
-private void storeRegistrationId(Context context, String regId) {
-    final SharedPreferences prefs = getGCMPreferences(context);
-    int appVersion = getAppVersion(context);
-    Log.i(TAG, "Saving regId on app version " + appVersion);
-    SharedPreferences.Editor editor = prefs.edit();
-    editor.putString(PROPERTY_REG_ID, regId);
-    editor.putInt(PROPERTY_APP_VERSION, appVersion);
-    editor.commit();
-}</pre>
-
-<h4 id="reg-errors">Handle registration errors</h4>
-
-<p>As stated above, an Android app must register with GCM servers and get a registration ID
-before it can receive messages. A given registration ID is not guaranteed to last indefinitely,
-so the first thing your app should always do is check to make sure it has a valid
-registration ID (as shown in the code snippets above).</p>
-
-<p>In addition to confirming that it has a valid registration ID, your app should be prepared to handle
-the registration error {@code TOO_MANY_REGISTRATIONS}. This error indicates that the device
-has too many apps registered with GCM. The error only occurs in cases where there are
-extreme numbers of apps, so it should not affect the average user. The remedy is to prompt
-the user to delete some of the other client apps from the device to make
-room for the new one.</p>
-
-<h3 id="sample-receive">Receive a downstream message</h3>
-
-<p>As described above in <a href="#manifest">Step 2</a>, the app includes a
-{@link android.support.v4.content.WakefulBroadcastReceiver} for the <code>com.google.android.c2dm.intent.RECEIVE</code>
-intent. A broadcast receiver is the mechanism GCM uses to deliver messages. </p>
-<p>A {@link android.support.v4.content.WakefulBroadcastReceiver} is a special type of
-broadcast receiver that takes care of
-creating and managing a
-<a href="{@docRoot}reference/android/os/PowerManager.html#PARTIAL_WAKE_LOCK">
-partial wake lock</a> for your app.
-It passes off the work of processing the GCM message to a
-{@link android.app.Service} (typically an
-{@link android.app.IntentService}), while ensuring that the device does not
-go back to sleep in the transition. If you don't hold a wake lock while transitioning
-the work to a service, you are effectively allowing the device to go back to sleep before
-the work completes. The net result is that the app might not finish processing
-the GCM message until some arbitrary point in the future, which is not what you want.</p>
-
-<p class="note"><strong>Note:</strong> Using {@link android.support.v4.content.WakefulBroadcastReceiver}
-is not a requirement. If you have a relatively simple app that doesn't require
-a service, you can intercept the GCM message in a regular {@link android.content.BroadcastReceiver}
-and do your processing there. Once you get the intent that GCM passes into
-your broadcast receiver's {@code onReceive()} method, what you do with it
-is up to you.</p>
-
-<p>This snippet starts {@code GcmIntentService} with the method
-{@link android.support.v4.content.WakefulBroadcastReceiver#startWakefulService startWakefulService()}.
-This method is comparable to {@link android.content.Context#startService startService()}, except that
-the {@link android.support.v4.content.WakefulBroadcastReceiver} is holding a
-wake lock when the service starts. The intent that is passed with
-{@link android.support.v4.content.WakefulBroadcastReceiver#startWakefulService startWakefulService()}
-holds an extra identifying the wake lock:</p>
-
-
-<pre>public class GcmBroadcastReceiver extends WakefulBroadcastReceiver {
-    &#64;Override
-    public void onReceive(Context context, Intent intent) {
-        // Explicitly specify that GcmIntentService will handle the intent.
-        ComponentName comp = new ComponentName(context.getPackageName(),
-                GcmIntentService.class.getName());
-        // Start the service, keeping the device awake while it is launching.
-        startWakefulService(context, (intent.setComponent(comp)));
-        setResultCode(Activity.RESULT_OK);
-    }
-}</pre>
-
-<p>The intent service shown below does the actual work of handling the GCM
-message. When the service is finished, it calls
-{@link android.support.v4.content.WakefulBroadcastReceiver#completeWakefulIntent GcmBroadcastReceiver.completeWakefulIntent()}
-to release the wake lock. The
-{@link android.support.v4.content.WakefulBroadcastReceiver#completeWakefulIntent completeWakefulIntent()}
-method has as its parameter the same intent that was
-passed in from the {@link android.support.v4.content.WakefulBroadcastReceiver}.
-</p>
-
-<p>This snippet processes the GCM message based on message type, and posts the
-result in a notification. But what you do with GCM messages in your app is up to
-you&mdash;the possibilities are endless. For example, the message might be a ping,
-telling the app to sync to a server to retrieve new content, or it might be a
-chat message that you display in the UI.</p>
-
-<pre>
-public class GcmIntentService extends IntentService {
-    public static final int NOTIFICATION_ID = 1;
-    private NotificationManager mNotificationManager;
-    NotificationCompat.Builder builder;
-
-    public GcmIntentService() {
-        super("GcmIntentService");
-    }
-
-    &#64;Override
-    protected void onHandleIntent(Intent intent) {
-        Bundle extras = intent.getExtras();
-        GoogleCloudMessaging gcm = GoogleCloudMessaging.getInstance(this);
-        // The getMessageType() intent parameter must be the intent you received
-        // in your BroadcastReceiver.
-        String messageType = gcm.getMessageType(intent);
-
-        if (!extras.isEmpty()) {  // has effect of unparcelling Bundle
-            /*
-             * Filter messages based on message type. Since it is likely that GCM
-             * will be extended in the future with new message types, just ignore
-             * any message types you're not interested in, or that you don't
-             * recognize.
-             */
-            if (GoogleCloudMessaging.
-                    MESSAGE_TYPE_SEND_ERROR.equals(messageType)) {
-                sendNotification("Send error: " + extras.toString());
-            } else if (GoogleCloudMessaging.
-                    MESSAGE_TYPE_DELETED.equals(messageType)) {
-                sendNotification("Deleted messages on server: " +
-                        extras.toString());
-            // If it's a regular GCM message, do some work.
-            } else if (GoogleCloudMessaging.
-                    MESSAGE_TYPE_MESSAGE.equals(messageType)) {
-                // This loop represents the service doing some work.
-                for (int i=0; i<5; i++) {
-                    Log.i(TAG, "Working... " + (i+1)
-                            + "/5 @ " + SystemClock.elapsedRealtime());
-                    try {
-                        Thread.sleep(5000);
-                    } catch (InterruptedException e) {
-                    }
-                }
-                Log.i(TAG, "Completed work @ " + SystemClock.elapsedRealtime());
-                // Post notification of received message.
-                sendNotification("Received: " + extras.toString());
-                Log.i(TAG, "Received: " + extras.toString());
-            }
-        }
-        // Release the wake lock provided by the WakefulBroadcastReceiver.
-        GcmBroadcastReceiver.completeWakefulIntent(intent);
-    }
-
-    // Put the message into a notification and post it.
-    // This is just one simple example of what you might choose to do with
-    // a GCM message.
-    private void sendNotification(String msg) {
-        mNotificationManager = (NotificationManager)
-                this.getSystemService(Context.NOTIFICATION_SERVICE);
-
-        PendingIntent contentIntent = PendingIntent.getActivity(this, 0,
-                new Intent(this, DemoActivity.class), 0);
-
-        NotificationCompat.Builder mBuilder =
-                new NotificationCompat.Builder(this)
-        .setSmallIcon(R.drawable.ic_stat_gcm)
-        .setContentTitle("GCM Notification")
-        .setStyle(new NotificationCompat.BigTextStyle()
-        .bigText(msg))
-        .setContentText(msg);
-
-        mBuilder.setContentIntent(contentIntent);
-        mNotificationManager.notify(NOTIFICATION_ID, mBuilder.build());
-    }
-}</pre>
-
-
-<h3 id="sample-send">Send an upstream message</h3>
-<p>When the user clicks the app's <strong>Send</strong> button, the app sends an
-upstream message using the
-<a href="{@docRoot}reference/com/google/android/gms/gcm/GoogleCloudMessaging.html">
-{@code GoogleCloudMessaging}</a> API. In order to receive the upstream message,
-your server should be connected to CCS. You can use one of the demo servers in
-<a href="ccs.html#implement">Implementing an XMPP-based App Server</a> to run the sample and connect
-to CCS.</p>
-
-<pre>public void onClick(final View view) {
-    if (view == findViewById(R.id.send)) {
-        new AsyncTask<Void, Void, String>() {
-            &#64;Override
-            protected String doInBackground(Void... params) {
-                String msg = "";
-                try {
-                    Bundle data = new Bundle();
-                        data.putString("my_message", "Hello World");
-                        data.putString("my_action",
-                                "com.google.android.gcm.demo.app.ECHO_NOW");
-                        String id = Integer.toString(msgId.incrementAndGet());
-                        gcm.send(SENDER_ID + "@gcm.googleapis.com", id, data);
-                        msg = "Sent message";
-                } catch (IOException ex) {
-                    msg = "Error :" + ex.getMessage();
-                }
-                return msg;
-            }
-
-            &#64;Override
-            protected void onPostExecute(String msg) {
-                mDisplay.append(msg + "\n");
-            }
-        }.execute(null, null, null);
-    } else if (view == findViewById(R.id.clear)) {
-        mDisplay.setText("");
-    }
-}</pre>
-
-<h2 id="run">Running the Sample</h2>
-
-<p>To run the sample:</p>
-
-<ol>
-  <li>Follow the instructions in <a href="gs.html">Getting Started</a> to get your sender ID and
-  API key.</li>
-  <li>Implement your client app, as described in this document. You can find the complete source
-  code for the client app at the <a href="http://code.google.com/p/gcm">open source site</a>.</li>
-  <li>Run one of the demo servers (Java or Python) provided in
-<a href="ccs.html#implement">Implementing an XMPP-based App Server</a>. Whichever demo server you
- choose, don't forget to edit its code before running it to supply
-your sender ID and API key.
-</li>
-
-</ol>
-
-<h2 id="stats">Viewing Statistics</h2>
-
-<p>To view  statistics and any error messages for your GCM applications:</p>
-<ol>
-  <li> Go to the <a href="http://play.google.com/apps/publish">Developer Console</a>.</li>
-  <li>Login with your developer account.
-  <p>You will see a page that has a list of all of your apps.</p></li>
-  <li> Click on the &quot;statistics&quot; link next to the app for which you
-want to view GCM stats.
-  <p>Now you are on the statistics page.</p> </li>
-  <li>Go to the drop-down menu and select the GCM metric you want to view.
-  </li>
-</ol>
-<p class="note"><strong>Note:</strong> Stats on the Google API Console are not
-enabled for GCM. You must use the <a href="http://play.google.com/apps/publish">Developer Console</a>.</p>
-
diff --git a/docs/html/google/gcm/demo.jd b/docs/html/google/gcm/demo.jd
deleted file mode 100644
index 012eb9a..0000000
--- a/docs/html/google/gcm/demo.jd
+++ /dev/null
@@ -1,277 +0,0 @@
-page.title=GCM Demo Application
-@jd:body
-
-<div id="deprecatedSticker">
-  <a href="#" 
-     onclick="$('#naMessage').show();$('#deprecatedSticker').hide();return false">
-    <strong>This doc is deprecated</strong></a>
-</div>
-
-
-<div id="naMessage" style="display:block">
-<div><p><strong>The information in this document has been superseded by <a href="server.html">GCM Server</a> and <a href="client.html">GCM Client</a></strong>. Please use the <a href="{@docRoot}reference/com/google/android/gms/gcm/GoogleCloudMessaging.html">{@code GoogleCloudMessaging}</a> API instead of the GCM client helper library. The GCM server helper library is still valid.</p>
-
- <input style="margin-top:1em;padding:5px" type="button"
-        value="That's nice, but I still want to read this document"
-onclick="$('#naMessage').hide();$('#deprecatedSticker').show()" />
-</div>
-</div>
-
-<div id="qv-wrapper">
-<div id="qv">
-
-<h2>Quickview</h2>
-
-<ul>
-<li>Build and run the GCM demo app.</li>
-<li>Understand how to set up both the client and server sides of a GCM app.</li>
-<li>Become familiar with the GCM helper libraries.</li>
-</ul>
-
-
-<h2>In this document</h2>
-
-<ol>
-  <li><a href="#requirements">Requirements</a> </li>
-  <li><a href="#gcm-setup">Setting Up GCM</a></li>
-  <li><a href="#server-setup">Setting Up the Server</a>
-    <ol>
-      <li><a href="#webserver-setup">Using a standard web server</a></li>
-      <li><a href="#appengine-setup">Using App Engine for Java</a></li>
-    </ol>
-  </li>
-  <li><a href="#device-setup">Setting Up the Device</a></li>
-</ol>
-
-</div>
-</div>
-
-<p class="note"><strong>Note:</strong> This tutorial describes how to develop GCM-enabled apps using the helper libraries. This is just one approach. For a more comprehensive discussion of the available APIs and development paths, see <a href="gs.html">Getting Started</a>.
-
-<p>The Google Cloud Messaging (GCM) Demo demonstrates how to use the Google Cloud Messaging framework in your Android application. This tutorial walks you through setting up and running the demo.</p>
-
-
-<p>This demo consists of the following pieces: </p>
-<ul>
-  <li>A web server containing a page where you can send messages.</li>
-  <li>An Android application that receives and displays such messages.</li>
-</ul>
-<p>See the <a href="{@docRoot}reference/com/google/android/gcm/package-summary.html">reference</a> for the client and server helper libraries used in this demo.</p>
-
-<p>The sections below describe how to download the demo code and helper libraries from the SDK Manager. The demo code and helper libraries are also available at the <a href="http://code.google.com/p/gcm">open source site</a>.
-
-<h2 id="requirements">Requirements</h2>
-<p>For the web server:</p>
-<ul>
-  <li> <a href="http://ant.apache.org/">Ant 1.8</a> (it might work with earlier versions, but it's not guaranteed).</li>
-  <li>One of the following:
-    <ul>
-      <li>A running web server compatible with Servlets API version 2.5, such as <a href="http://tomcat.apache.org/">Tomcat 6</a> or <a href="http://jetty.codehaus.org/">Jetty</a>, or</li>
-      <li><a href="http://code.google.com/appengine/">Java App Engine SDK</a> version 1.6 or later.</li>
-    </ul>
-  </li>
-  <li>A Google account registered to use GCM.</li>
-  <li>The API  key for that account.</li>
-</ul>
-<p>For the Android application:</p>
-<ul>
-  <li>Emulator (or device) running Android 2.2 with Google APIs.</li>
-  <li>The Google API project number of the account registered to use GCM.</li>
-</ul>
-<h2 id="gcm-setup">Setting Up GCM</h2>
-<p>Before proceeding with the server and client setup, it's necessary to register a Google account with the Google API Console, enable Google Cloud Messaging in GCM, and obtain an API key from the <a href="https://code.google.com/apis/console">Google API Console</a>.</p>
-<p>For instructions on how to set up GCM, see <a href="gs.html">Getting Started</a>.</p>
-
-
-<h2 id="server-setup">Setting Up the Server</h2>
-<p>This section describes the different options for setting up a server.</p>
-<h3 id="webserver-setup">Using a standard web server</h3>
-<p>To set up the server using a standard, servlet-compliant web server:</p>
-<ol>
-  <li> From the SDK Manager, install <strong>Extras &gt; Google Cloud Messaging for Android Library</strong>.
-    
-    
-    <p>This creates a <code>gcm</code> directory under <code><em>YOUR_SDK_ROOT</em>/extras/google/</code> containing these subdirectories: <code>gcm-client</code>, <code>gcm-server</code>, <code>samples/gcm-demo-client</code>, <code>samples/gcm-demo-server</code>, and <code>samples/gcm-demo-appengine</code>.</p>
-
-<p class="note"><strong>Note:</strong> If you don't see <strong>Extras &gt; Google Cloud Messaging for Android Library</strong> in the SDK Manager, make sure you are running version 20 or higher. Be sure to restart the SDK Manager after updating it.</p>
-  </li>
-
-  <li>In a text editor, edit the <code>samples/gcm-demo-server/WebContent/WEB-INF/classes/api.key</code> and replace the existing text with the API key obtained above.</li>
-  <li>In a shell window, go to the <code>samples/gcm-demo-server</code> directory.</li>
-  <li>Generate the server's WAR file by running <code>ant war</code>:</li>
-  
-  <pre class="prettyprint">$ ant war
-
-Buildfile:build.xml
-
-init:
-   [mkdir] Created dir: build/classes
-   [mkdir] Created dir: dist
-
-compile:
-   [javac] Compiling 6 source files to build/classes
-
-war:
-     [war] Building war: <strong>dist/gcm-demo.war</strong>
-
-BUILD SUCCESSFUL
-Total time: 0 seconds
-</pre>
-  
-  <li>Deploy the <code>dist/gcm-demo.war</code> to your running server. For instance, if you're using Jetty, copy <code>gcm-demo.war</code> to the <code>webapps</code> directory of the Jetty installation.</li>
-  <li>Open the server's main page in a browser. The URL depends on the server you're using and your machine's IP address, but it will be something like <code>http://192.168.1.10:8080/gcm-demo/home</code>, where <code>gcm-demo</code> is the application context and <code>/home</code> is the path of the main servlet.
-    
-  </li>
-</ol>
-<p class="note"><strong>Note:</strong> You can get the IP by running <code>ifconfig</code> on Linux or MacOS, or <code>ipconfig</code> on Windows. </p>
-
-<p> You server is now ready.</p>
-<h3 id="appengine-setup">Using App Engine for Java</h3>
-
-<p>To set up the server using a standard App Engine for Java:</p>
-<ol>
-  <li> From the SDK Manager, install <strong>Extras &gt; Google Cloud Messaging for Android Library</strong>.
-    <p>This creates a <code>gcm</code> directory under <code><em>YOUR_SDK_ROOT</em>/extras/google/</code> containing these subdirectories: <code>gcm-client</code>, <code>gcm-server</code>, <code>samples/gcm-demo-client</code>, <code>samples/gcm-demo-server</code>, and <code>samples/gcm-demo-appengine</code>.</p>
-  </li>
-  <li>In a text editor, edit <code>samples/gcm-demo-appengine/src/com/google/android/gcm/demo/server/ApiKeyInitializer.java</code> and replace the existing text with the API key obtained above.
-  <p class="note"><strong>Note:</strong> The API key value set in that class will be used just once to create a persistent entity on App Engine. If you deploy the application, you can use App Engine's <code>Datastore Viewer</code> to change it later.</p>
-  
-  </li>
-  <li>In a shell window, go to the <code>samples/gcm-demo-appengine</code> directory.</li>
-  <li>Start the development App Engine server by <code>ant runserver</code>, using the <code>-Dsdk.dir</code> to indicate the location of the App Engine SDK and <code>-Dserver.host</code> to set your server's hostname or IP address:</li>
-
-<pre class="prettyprint">
-$ ant -Dsdk.dir=/opt/google/appengine-java-sdk runserver -Dserver.host=192.168.1.10
-Buildfile: gcm-demo-appengine/build.xml
-
-init:
-    [mkdir] Created dir: gcm-demo-appengine/dist
-
-copyjars:
-
-compile:
-
-datanucleusenhance:
-  [enhance] DataNucleus Enhancer (version 1.1.4) : Enhancement of classes
-  [enhance] DataNucleus Enhancer completed with success for 0 classes. Timings : input=28 ms, enhance=0 ms, total=28 ms. Consult the log for full details
-  [enhance] DataNucleus Enhancer completed and no classes were enhanced. Consult the log for full details
-
-runserver:
-     [java] Jun 15, 2012 8:46:06 PM com.google.apphosting.utils.jetty.JettyLogger info
-     [java] INFO: Logging to JettyLogger(null) via com.google.apphosting.utils.jetty.JettyLogger
-     [java] Jun 15, 2012 8:46:06 PM com.google.apphosting.utils.config.AppEngineWebXmlReader readAppEngineWebXml
-     [java] INFO: Successfully processed gcm-demo-appengine/WebContent/WEB-INF/appengine-web.xml
-     [java] Jun 15, 2012 8:46:06 PM com.google.apphosting.utils.config.AbstractConfigXmlReader readConfigXml
-     [java] INFO: Successfully processed gcm-demo-appengine/WebContent/WEB-INF/web.xml
-     [java] Jun 15, 2012 8:46:09 PM com.google.android.gcm.demo.server.ApiKeyInitializer contextInitialized
-     [java] SEVERE: Created fake key. Please go to App Engine admin console, change its value to your API Key (the entity type is 'Settings' and its field to be changed is 'ApiKey'), then restart the server!
-     [java] Jun 15, 2012 8:46:09 PM com.google.appengine.tools.development.DevAppServerImpl start
-     [java] INFO: The server is running at http://192.168.1.10:8080/
-     [java] Jun 15, 2012 8:46:09 PM com.google.appengine.tools.development.DevAppServerImpl start
-     [java] INFO: The admin console is running at http://192.168.1.10:8080/_ah/admin
-</pre>
-
-  <li>Open the server's main page in a browser. The URL depends on the server you're using and your machine's IP address, but it will be something like <code>http://192.168.1.10:8080/home</code>, where <code>/home</code> is the path of the main servlet.</li>
-  
-  <p class="note"><strong>Note:</strong> You can get the IP by running <code>ifconfig</code> on Linux or MacOS, or <code>ipconfig</code> on Windows.</p>
-  
-</ol>
-<p> You server is now ready.</p>
-<h2 id="device-setup">Setting Up the Device</h2>
-<p>To set up the device:</p>
-<ol>
-  <li> From the SDK Manager, install <strong>Extras &gt; Google Cloud Messaging for Android Library</strong>.
-    <p>This creates a <code>gcm</code> directory under <code><em>YOUR_SDK_ROOT</em>/extras/google</code> containing these subdirectories: <code>gcm-client</code>, <code>gcm-server</code>, <code>samples/gcm-demo-client</code>, <code>samples/gcm-demo-server</code>, and <code>samples/gcm-demo-appengine</code>.</p>
-  </li>
-  <li>Using a text editor, open  <code>samples/gcm-demo-client/src/com/google/android/gcm/demo/app/CommonUtilities.java</code> and set the proper values for the <code>SENDER_ID</code> and <code>SERVER_URL</code> constants. For example:</li>
-
-<pre class="prettyprint pretty-java">
-static final String SERVER_URL = &quot;http://192.168.1.10:8080/gcm-demo&quot;;
-static final String SENDER_ID = &quot;4815162342&quot;;</pre>
-<p>Note that the <code>SERVER_URL</code> is the URL for the server and the application's context (or just server, if you are using App Engine), and it does not include the forward slash (<code>/</code>). Also note that <code>SENDER_ID</code> is the Google API project number you obtained in the server setup steps above.</p>
-
-  <li>In a shell window, go to the <code>gcm-demo-client</code> directory.</li>
-  <li>Use the SDK's <code>android</code> tool to generate the <code>ant</code> build files:</li>
-
-<pre class="prettyprint">
-$ android update project --name GCMDemo -p . --target android-16
-Updated project.properties
-Updated local.properties
-Updated file ./build.xml
-Updated file ./proguard-project.txt
-</pre>
-<p>If this command fails becase <code>android-16</code> is not recognized, try a different target (as long as it is at least <code>android-15</code>).</p>
-
-<li>Use <code>ant</code> to build the application's APK file:</li>
-
- <pre class="prettyprint">
-$ ant clean debug
-Buildfile: build.xml
-
-...
-
-
--do-debug:
-[zipalign] Running zip align on final apk...
-    [echo] Debug Package: bin/GCMDemo-debug.apk
-[propertyfile] Creating new property file: <strong>bin/build.prop</strong>
-[propertyfile] Updating property file: bin/build.prop
-[propertyfile] Updating property file: bin/build.prop
-[propertyfile] Updating property file: bin/build.prop
-
--post-build:
-
-debug:
-
-BUILD SUCCESSFUL
-Total time: 3 seconds
- </pre>
- 
-<li>Start the Android emulator:</li>
-<pre class="prettyprint">$emulator -avd my_avd
-</pre>
-
-<p> This example assumes there is an AVD (Android Virtual Device) named <code>my_avd</code> previously configured with Android 2.2 and Google APIs level 8. For more information on how to run an Android emulator, see <a href="{@docRoot}tools/devices/index.html">Managing Virtual Devices</a> in the Android Developers Guide.</p>
-
-<li>Make sure there is a Google account added to the emulator. It doesn't have to be any account (like the <code>senderId</code>) in particular. </li>
-
-<p> If the emulator is running Android 4.0.4 or later, this step is optional as GCM does not require an account from this version on.</p>
-
-<li>Install the application in the emulator:</li>
-
-<pre class="prettyprint">
-$ ant installd
-Buildfile: gcm-demo-client/build.xml
-
--set-mode-check:
-
--set-debug-files:
-
-install:
-     [echo] Installing gcm-demo-client/bin/GCMDemo-debug.apk onto default emulator or device...
-     [exec] 1719 KB/s (47158 bytes in 0.026s)
-     [exec]   pkg: /data/local/tmp/GCMDemo-debug.apk
-     [exec] Success
-
-installd:
-
-BUILD SUCCESSFUL
-Total time: 3 seconds
-</pre>
-  <li>In the emulator, launch the GCM Demo app. The initial screen should look like this:</li>
-  <p><img src="{@docRoot}images/gcm/gcm-avd-home-auto-reg.png" class="screenshot" /></p>
-<p class="note"><strong>Note:</strong> What happened? When the device received a registration callback intent from GCM, it contacted the server to register itself, using the register servlet and passing the registration ID received from GCM; the server then saved the registration ID to use it to send messages to the phone.</p>
-<li> Now go back to your browser and refresh the page. It will show that there is one device registered:</li>
-
-<p><img src="{@docRoot}images/gcm/gcm-device-reg.png" class="screenshot" /></p>
-
-<li>Click on <strong>Send Message</strong>. The browser should show:</li>
-<p><img src="{@docRoot}images/gcm/gcm-sent-server.png" class="screenshot" /></p>
-
-<p>And in your emulator:</p>
-
-<p><img src="{@docRoot}images/gcm/gcm-avd-first-msg.png" class="screenshot" /></p>
-
-<p class="note"><strong>Note:</strong> What happened? When you clicked the button, the web server sent a message to GCM addressed to your device (more specifically, to the registration ID returned by GCM during the registration step). The device then received the message and displayed in the main activity; it also issued a system notification so the user would be notified even if the demo application was not running.</p>
-</ol>
-
diff --git a/docs/html/google/gcm/gcm.jd b/docs/html/google/gcm/gcm.jd
deleted file mode 100644
index d4bb45e..0000000
--- a/docs/html/google/gcm/gcm.jd
+++ /dev/null
@@ -1,307 +0,0 @@
-page.title=Overview
-@jd:body
-
-<div id="qv-wrapper">
-<div id="qv">
-
-<h2>In this document</h2>
-
-<ol class="toc">
-  <li><a href="#key">Key Concepts</a></li>
-  <li><a href="#arch">Architectural Overview</a></li>
-  <li><a href="#lifecycle">Lifecycle Flow</a></li>
-  <li><a href="#reg">Register to enable GCM</a></li>
-</ol>
-
-</div>
-</div>
-
-<p>Google Cloud Messaging (GCM) is a free service that enables developers
-to send downstream messages (from servers to GCM-enabled client apps), and
-upstream messages (from the GCM-enabled client apps to servers).
-This could be a lightweight message telling the client app
-that there is new data to be fetched from the server (for instance, a "new email"
-notification informing the app that it is out of sync with the back end),
-or it could be a message containing up to 4kb of payload
-data (so apps like instant messaging can consume the message directly). The GCM
-service handles all aspects of queueing of messages and delivery to and from
-the target client app.</p>
-
-
-<h2 id="key">Key Concepts</h2>
-
-<p>This table summarizes the key terms and concepts involved in GCM. It is
-divided into these categories:</p>
-<ul>
-  <li><strong>Components</strong> &mdash; The entities that play a primary role in
-GCM.</li>
-  <li><strong>Credentials</strong> &mdash; The IDs and tokens that are used in
-GCM to ensure that all parties have been authenticated, and
-that the message is going to the correct place.</li>
-</ul>
-
-<p class="table-caption" id="table1">
-  <strong>Table 1.</strong> GCM components and credentials.</p>
-
-<table>
-  <tr>
-    <th colspan="2">Components</th>
-  </tr>
-<tr>
-    <td><strong>GCM Connection Servers</strong></td>
-    <td>The Google-provided servers involved in sending messages between the
-3rd-party app server and the client app.</td>
-  </tr>
-  <tr>
-    <td><strong>Client App</strong></td>
-    <td>A GCM-enabled client app that communicates with a 3rd-party app server.</td>
-  </tr>
-  <tr>
-    <td><strong>3rd-party App Server</strong></td>
-    <td>An app server that you write as part of implementing
-GCM. The 3rd-party app server sends data to a client app via
-the GCM connection server.</td>
-  </tr>
-  <tr>
-    <th colspan="2">Credentials</th>
-  </tr>
-  <tr>
-    <td id="senderid"><strong>Sender ID</strong></td>
-    <td>A project number you acquire from the API console, as described in
-<a href="gs.html#create-proj">Getting Started</a>. The sender
-ID is used in the <a href="#register">registration process</a> to identify a
-3rd-party app server that is permitted to send messages to the client app.</td>
-  </tr>
-  <tr>
-    <td id="apikey"><strong>Sender Auth Token</strong></td>
-    <td>An API key that is saved on the 3rd-party app
-server that gives the app server authorized access to Google services.
-The API key is included in the header of POST requests.
-</td>
-  </tr>
-  <tr>
-    <td><strong>Application ID</strong></td>
-    <td>The client app that is registering to receive messages. How this is implemented
-is platform-dependent. For example, an Android app
-is identified by the package name from the <a href="client.html#manifest">manifest</a>.
-This  ensures that the messages are targeted to the correct Android app.</td>
-  </tr>
-  <tr>
-    <td><strong>Registration ID</strong></td>
-    <td>An ID issued by the GCM servers to the client app that allows
-it to receive messages. Note that registration IDs must be kept secret.
-
-</td>
-  </tr>
-
-</table>
-
-<h2 id="arch">Architectural Overview</h2>
-
-<p>A GCM implementation includes a Google-provided
-connection server, a 3rd-party app server that interacts with the connection
-server, and a GCM-enabled client app. For example, this diagram shows GCM
-communicating with a client app on an Android device:</p>
-
-<img src="{@docRoot}images/gcm/GCM-arch.png">
-
-<p class="img-caption">
-  <strong>Figure 1.</strong> GCM Architecture.
-</p>
-
-<p>This is how these components interact:</p>
-<ul>
-  <li>Google-provided <strong>GCM Connection Servers</strong> take messages from
-a 3rd-party app server and send these messages to a
-GCM-enabled client app (the &quot;client app&quot;).
-Currently Google provides connection servers for <a href="http.html">HTTP</a>
-and <a href="ccs.html">XMPP</a>.</li>
-  <li>The <strong>3rd-Party App Server</strong> is a component that you
-implement to work with your chosen GCM connection server(s). App servers send
-messages to a GCM connection server; the connection server enqueues and stores the
-message, and then sends it to the client app.
-For more information, see <a href="server.html">Implementing GCM Server</a>.</li>
-  <li>The <strong>Client App</strong> is a GCM-enabled client app.
-To receive GCM messages, this app must register with GCM and get a
-registration ID. If you are using the <a href="ccs.html">XMPP</a> (CCS) connection
-server, the client app can send "upstream" messages back to the 3rd-party app server.
-For more information on how to implement the client app, see
-the documentation for your platform.</li>
-</ul>
-
-<h2 id="lifecycle">Lifecycle Flow</h2>
-
-<ul>
-  <li><strong>Register to enable GCM</strong>. A client app registers to receive messages.
-For more discussion, see <a href="#register">Register to enable GCM</a>.</li>
-  <li><strong>Send and receive downstream messages</strong>.
-  <ul>
-     <li>Send a message. A 3rd-party app server sends messages to the client app:
-       <ol>
-         <li>The 3rd-party app server <a href="server.html#send-msg">sends a message</a>
-to GCM connection servers.</li>
-         <li>The GCM connection server enqueues and stores the message if the device is offline.</li>
-         <li>When the device is online, the GCM connection server sends the message to the device. </li>
-         <li>On the device, the client app receives the message according to the platform-specific implementation.
-See your platform-specific documentation for details.</li>
-       </ol>
-    </li>
-  <li>Receive a message. A client app
-receives a message from a GCM server. See your platform-specific documentation for details
-on how a client app in that environment processes the messages it receives.</li>
-  </ul>
-</li>
-
-  <li><strong>Send and receive upstream messages</strong>. This feature is only available if
-you're using the <a href="ccs.html">XMPP Cloud Connection Server</a> (CCS).
-<ul>
-     <li>Send a message. A client app sends messages to the 3rd-party app server:
-      <ol>
-        <li>On the device, the client app sends messages to XMPP (CCS).See your platform-specific
-          documentation for details on how a client app can send a message to XMPP (CCS).</li>
-        <li>XMPP (CCS) enqueues and stores the message if the server is disconnected.</li>
-        <li>When the 3rd-party app server is re-connected, XMPP (CCS) sends the message to the 3rd-party app server.</li>
-      </ol>
-    </li>
-  <li>Receive a message. A 3rd-party app server receives a message from XMPP (CCS) and then does the following:
-      <ol>
-        <li>Parses the message header to verify client app sender information.
-        <li>Sends "ack" to GCM XMPP connection server to acknowledge receiving the message.
-        <li>Optionally parses the message payload, as defined by the client app.
-      </ol>
-</li>
-</ul>
-
-</li>
-
-
-</ul>
-
-<h2 id="reg">Register to enable GCM</h2>
-
-<p>Regardless of the platform you're developing on, the first step
-a client app must do is register with GCM. This section covers some of the general
-best practices for registration and unregistration. See your platform-specific docs for
-details on writing a GCM-enabled client app on that platform.</p>
-
-<h3 id="reg-state">Keeping the Registration State in Sync</h3>
-<p>Whenever the app registers as described in
-<a href="{@docRoot}google/gcm/client.html">Implementing GCM Client</a>,
-it should save the registration ID for future use, pass it to the
-3rd-party server to complete the registration, and keep track of
-whether the server completed the registration. If the server fails
-to complete the registration, the client app should retry passing the
-registration ID to 3rd-party app server to complete the registration.
-If this continues to fail, the client app should unregister from GCM.</p>
-
-<p>There are also two other scenarios that require special care:</p>
-<ul>
-  <li>Client app update</li>
-  <li>Backup and restore
-  </li>
-</ul>
-<p><bold>Client app update:</bold> When a client app is updated, it should invalidate its existing registration
-ID, as it is not guaranteed to work with the new version.  The recommended way to achieve
-this validation is by storing the current app version when a registration
-ID is stored. Then when the app starts, compare the stored value with
-the current app version. If they do not match, invalidate the stored data
-and start the registration process again.</p>
-
-<p><bold>Backup and restore: </bold> You should not save the registration ID when an app is
-backed up. This is because the registration ID could become invalid by the time
-the app is restored, which would put the app in an invalid state
-(that is, the app thinks it is registered, but the server and GCM do not
-store that registration ID anymore&mdash;thus the app will not get more
-messages). The best practice is to initiate the registration process as if the app has been
-installed for the first time.</p>
-
-<h4 id="canonical">Canonical IDs</h4>
-<p>If a bug in the app triggers multiple
-registrations for the same device, it can be hard to reconcile state and you might
-end up with duplicate messages.</p>
-<p>GCM provides a facility called &quot;canonical registration IDs&quot; to easily
-recover from these situations. A canonical registration ID is defined to be the ID
-of the last registration requested by your app. This is the ID that the
-server should use when sending messages to the device.</p>
-<p>If later on you try to send a message using a different registration ID, GCM
-will process the request as usual, but it will include the canonical registration
-ID in the <code>registration_id</code> field of the response. Make sure to replace
-the registration ID stored in your server with this canonical ID, as eventually
-the ID you're using will stop working.</p>
-
-<h3 id="retry">Automatic Retry Using Exponential Back-Off</h3>
-
-<p>When registration or unregistration fails, the app should retry the failed operation.</p>
-<p>In the simplest case, if your app attempts to register and GCM is not a
-fundamental part of the app, the app could simply ignore the error
-and try to register again the next time it starts. Otherwise, it should retry the
-previous operation using exponential back-off. In exponential back-off, each time
-there is a failure, it should wait twice the previous amount of time before trying
-again.
-</p>
-
-<h3 id="unreg">Unregistration</h3>
-
-<p>This section explains when you should unregister in GCM and what happens
-when you do.</p>
-
-<h4 id="unreg-why">Why you should rarely unregister</h4>
-
-<p>You should only need to unregister in rare cases, such as
-if you want an app to stop receiving messages, or if you suspect that the registration ID has
-been compromised. In general, once an app has a registration ID, you shouldn't need
-to change it.</p>
-
-<p>In particular, you should never unregister your app as a mechanism for
-logout or for switching between users, for the following reasons:</p>
-
-<ul>
-  <li>A registration ID isn't associated with a particular
-  logged in user. If you unregister and then re-register, GCM may return the same
-  ID or a different ID&mdash;there's no guarantee either way.</li>
-
-  <li>Unregistration may take up to 5 minutes to propagate.</li>
-  <li>After unregistration, re-registration may again take up to 5 minutes to
-propagate. During this time messages may be rejected due to the state of being
-unregistered, and after all this, messages may still go to the wrong user.</li>
-</ul>
-
-
-<p>To make sure that messages go to the intended user:</p>
-
-<ul>
-  <li>Your app server can maintain a mapping between the current user
-and the registration ID.</li>
-  <li>The app can then check to ensure that messages it
-receives match the logged in user.</li>
-</ul>
-
-
-<h4 id="unreg-how">How unregistration works</h4>
-
-<p>A client app can be automatically unregistered after it is uninstalled.
-However, this process does not happen right away. What happens in
-this scenario is as follows:</p>
-<ol>
-  <li>The end user uninstalls the client app.</li>
-  <li>The 3rd-party app server sends a message to GCM server.</li>
-  <li>The GCM server sends the message to the GCM client on the device.</li>
-  <li>The GCM client on the device receives the message and detects that the client app has been
-   uninstalled; the detection details depend on the platform on which the client app is running.
-</li>
-  <li>The GCM client on the device informs the GCM server that the client app was uninstalled.</li>
-  <li>The GCM server marks the registration ID for deletion.</li>
-  <li>The 3rd-party app server sends a message to  GCM.</li>
-  <li>The GCM returns a <code>NotRegistered</code> error message to the 3rd-party app server.</li>
-  <li>The 3rd-party app server deletes the registration ID.
-  </li>
-</ol>
-
-<p>Note that it might take a while for the registration ID be completely removed
-from GCM. Thus it is possible that messages sent during step 7 above gets a valid
-message ID as response, even though the message will not be delivered to the client app.
-Eventually, the registration ID will be removed and the server will get a
-<code>NotRegistered</code> error, without any further action being required from
-the 3rd-party server (this scenario happens frequently while an app is
-being developed and tested).</p>
-
diff --git a/docs/html/google/gcm/gs.jd b/docs/html/google/gcm/gs.jd
deleted file mode 100644
index 2331292..0000000
--- a/docs/html/google/gcm/gs.jd
+++ /dev/null
@@ -1,94 +0,0 @@
-page.title=Getting Started on Android
-page.tags=cloud,push,messaging
-@jd:body
-
-<div id="qv-wrapper">
-<div id="qv">
-
-
-<h2>In this document</h2>
-
-<ol class="toc">
-<li><a href="#create-proj">Creating a Google API Project</a></li>
-<li><a href="#gcm-service">Enabling the GCM Service</a></li>
-<li><a href="#access-key">Obtaining an API Key</a></li>
-<li><a href="#next">Next Steps</a></li>
-</ol>
-
-<h2>See Also</h2>
-
-<ol class="toc">
-<li><a href="https://cloud.google.com/console">Google Cloud Console</a></li>
-<li><a href="https://developers.google.com/console/help/new/">Google Cloud Console Help</a></li>
-</ol>
-
-</div>
-</div>
-
-<p>This document tells you how to get started setting up a Google Cloud Messaging
-(GCM) implementation.
-Before you begin, make sure to <a href="/google/play-services/setup.html">set up
-the Google Play Services SDK</a>. You need this SDK to use the
-<a href="{@docRoot}reference/com/google/android/gms/gcm/package-summary.html">
-GCM APIs</a>.</p>
-
-<h2 id="create-proj">Creating a Google API project</h2>
-<p>To create a Google API project:</p>
-<ol>
-  <li>Open the <a href="https://cloud.google.com/console">Google Developers Console</a>.
-  </li>
-  <li>If you haven't created an API project yet, click <strong>Create Project</strong>.</li>
-
- <li>Supply a project name and click <strong>Create</strong>.
-
-<p>Once the project has been created, a page appears that displays your project ID and
-project number. For example, <strong>Project Number: 670330094152</strong>.</p></li>
-
-  <li>Copy down your project number. You will use it later on as the
-  <a href="{@docRoot}google/gcm/gcm.html#senderid">GCM sender ID</a>.</li>
-
-</ol>
-<h2 id="gcm-service">Enabling the GCM Service</h2>
-<p>To enable the GCM service:</p>
-<ol>
-  <li>In the sidebar on the left, select <strong>APIs &amp; auth</strong>. </li>
-  <li>In the displayed list of APIs, turn the <strong>Google Cloud Messaging for Android
-  </strong> toggle to ON.</li>
-
-</ol>
-<h2 id="access-key">Obtaining an API Key</h2>
-<p>To obtain an API  key:</p>
-<ol>
- <li>In the sidebar on the left, select <strong>APIs &amp; auth > Credentials</strong>.</li>
-
- <li>Under <strong>Public API access</strong>, click <strong>Create new key</strong>.</li>
-
-<li>In the <strong>Create a new key</strong> dialog, click <strong>Server key</strong>.</li>
-
-<li>In the resulting configuration dialog, supply your server's IP address. For testing
-purposes, you can use {@code 0.0.0.0/0}.</p></li>
-<li>Click <strong>Create</strong>.</li>
-
-<li>In the refreshed page, copy the
-<a href="{@docRoot}google/gcm/gcm.html#apikey">API key</a>.
-You will need the API key later on to perform authentication in your app server.</li>
-
-<p class="note"><strong>Note:</strong> If you need to rotate the key, click
-<strong>Regenerate key</strong>. A new key  will be created. If you think the key has been
-compromised and you want to delete it immediately, click <strong>Delete</strong>.</p>
-</ol>
-
-<h2 id="next">Next Steps</h2>
-
-<p>Once you've finished the tasks listed above, you're ready to start
-implementing GCM. Here is an overview of the basic steps:</p>
-
-<ol>
-  <li>Implement an app server (the "3rd-party app server") to interact
-with your chosen GCM connection server. The app server sends data to a
-GCM-enabled Android client app via the GCM connection server. For more
-information about implementing the server side, see <a href="server.html">
-Implementing GCM Server</a>.</li>
-<li>Write your client app. This is the GCM-enabled Android app that runs
-on a device. See <a href="client.html">Implementing GCM Client</a> for more information.</li>
-</ol>
diff --git a/docs/html/google/gcm/helper.jd b/docs/html/google/gcm/helper.jd
deleted file mode 100644
index 19dcdc5..0000000
--- a/docs/html/google/gcm/helper.jd
+++ /dev/null
@@ -1,199 +0,0 @@
-page.title=Using the GCM Helper Libraries
-page.tags=cloud,push,messaging
-@jd:body
-
-<div id="deprecatedSticker">
-  <a href="#" 
-     onclick="$('#naMessage').show();$('#deprecatedSticker').hide();return false">
-    <strong>This doc is deprecated</strong></a>
-</div>
-
-
-<div id="naMessage" style="display:block">
-<div><p><strong>The information in this document has been superseded by <a href="server.html">GCM Server</a> and <a href="client.html">GCM Client</a></strong>. Please use the <a href="{@docRoot}reference/com/google/android/gms/gcm/GoogleCloudMessaging.html">{@code GoogleCloudMessaging}</a> API instead of the GCM client helper library. The GCM server helper library is still valid.</p>
-
- <input style="margin-top:1em;padding:5px" type="button"
-        value="That's nice, but I still want to read this document"
-onclick="$('#naMessage').hide();$('#deprecatedSticker').show()" />
-</div>
-</div>
-
-
-<div id="qv-wrapper">
-<div id="qv">
-
-<h2>Quickview</h2>
-
-<ul>
-<li>Walk through the steps of creating a GCM app.</li>
-</ul>
-
-
-<h2>In this document</h2>
-
-<ol class="toc">
-<li><a href="#libs">Installing the Helper Libraries</a></li>
-<li><a href="#android-app">Writing the Android Application</a>
-<li><a href="#server-app">Writing the Server-side Application</a> </li>
-</ol>
-
-<h2>See Also</h2>
-
-<ol class="toc">
-<li><a href="{@docRoot}google/play-services/gcm/gs.html">Getting Started with GCM Extensions</a></li>
-<li><a href="https://services.google.com/fb/forms/gcm/" class="external-link" target="_android">CCS and User Notifications Signup Form</a></li>
-</ol>
-
-</div>
-</div>
-
-<p>This document describes how to write an Android application and the  server-side logic, using the client and server <a href="{@docRoot}reference/com/google/android/gcm/package-summary.html">helper libraries</a> provided by GCM.</p> 
-
-<p>The helper libraries are one option for creating an Android application that uses GCM. You can alternatively use the approach described in the <a href="{@docRoot}google/gcm/gcm.html#writing_apps">GCM Architectural Overview</a>. If you need to perform upstream messaging, you must use the <a href="{@docRoot}reference/com/google/android/gms/gcm/GoogleCloudMessaging.html">GoogleCloudMessaging</a> APIs, and <a href="{@docRoot}reference/com/google/android/gms/gcm/GoogleCloudMessaging.html">GoogleCloudMessaging</a> also provides a streamlined registration process.</p>
-
-<p>For information on how to get started creating an Android GCM application and an example of how to use the <a href="{@docRoot}reference/com/google/android/gms/gcm/GoogleCloudMessaging.html">GoogleCloudMessaging</a> APIs, see <a href="{@docRoot}google/gcm/gs.html">Getting Started</a>.</p>
-
-<h2 id="libs">Installing the Helper Libraries</h2>
-<p>To perform the steps described in the following sections, you must first install the 
-<a href="{@docRoot}reference/com/google/android/gcm/package-summary.html">helper libraries</a>. Note that while using the helper libraries is recommended, it is not required. See the <a href="gcm.html#writing_apps">GCM Architectural Overview</a> for a description of how to write apps without using the helper libraries.
-
-<p>To install the helper libraries, choose 
-<strong>Extras &gt; Google Cloud Messaging for Android Library</strong>
-from the SDK Manager. This creates a <code>gcm</code> directory under
-<code><em>YOUR_SDK_ROOT</em>/extras/google/</code> containing these
-subdirectories: <code>gcm-client</code>, <code>gcm-server</code>,
-<code>samples/gcm-demo-client</code>, <code>samples/gcm-demo-server</code>,
-and <code>samples/gcm-demo-appengine</code>.</p>
-
-<p class="note"><strong>Note:</strong> If you don't see <strong>Extras &gt; Google Cloud Messaging for Android Library</strong> in the SDK Manager, make sure you are running version 20 or higher. Be sure to restart the SDK Manager after updating it.</p>
-
-<h2 id="android-app">Writing the Android Application</h2>
-<p>This section describes the steps involved in writing an Android application that uses GCM.</p>
-<h4>Step 1: Copy the gcm.jar file into your application classpath</h4>
-<p> To write your Android application, first copy the <code>gcm.jar</code> file from the SDK's <code>gcm-client/dist</code> directory to your application classpath.</p>
-<h4>Step 2: Make the following changes in the application's Android manifest</h4>
-<ol>
-  <li>GCM requires Android 2.2 or later, so if your application cannot work without GCM, add the following line, where <em>xx</em> is the latest target SDK version:</li>
-
-<pre class="prettyprint pretty-xml">&lt;uses-sdk android:minSdkVersion=&quot;8&quot; android:targetSdkVersion=&quot;xx&quot;/&gt;</pre>
-
-  <li>Declare and use a custom permission so only this application can receive GCM messages:<br>
-  </li>
-
-<pre class="prettyprint pretty-xml">&lt;permission android:name=&quot;my_app_package.permission.C2D_MESSAGE&quot; android:protectionLevel=&quot;signature&quot; /&gt;
-&lt;uses-permission android:name=&quot;my_app_package.permission.C2D_MESSAGE&quot; /&gt; </pre>
-<p> This permission must be called <code>my_app_package.permission.C2D_MESSAGE</code> (where <code>my_app_package</code> is the package name of your app as defined by the manifest tag), otherwise it will not  work.</p>
-<p class="note"><strong>Note:</strong> This permission is not required if you are targeting your application to 4.1 or above (i.e., minSdkVersion 16)</p>
-
-  <li>Add the following permissions:</li>
-
-<pre class="prettyprint pretty-xml">&lt;!-- App receives GCM messages. --&gt;
-&lt;uses-permission android:name=&quot;com.google.android.c2dm.permission.RECEIVE&quot; /&gt;
-&lt;!-- GCM connects to Google Services. --&gt;
-&lt;uses-permission android:name=&quot;android.permission.INTERNET&quot; /&gt; 
-&lt;!-- GCM requires a Google account. --&gt;
-&lt;uses-permission android:name=&quot;android.permission.GET_ACCOUNTS&quot; /&gt;
-&lt;!-- Keeps the processor from sleeping when a message is received. --&gt;
-&lt;uses-permission android:name=&quot;android.permission.WAKE_LOCK&quot; /&gt;</pre>
-
-  <li>Add the following broadcast receiver:</li>
-
-<pre class="prettyprint pretty-xml">&lt;receiver android:name=&quot;com.google.android.gcm.GCMBroadcastReceiver&quot; android:permission=&quot;com.google.android.c2dm.permission.SEND&quot; &gt;
-  &lt;intent-filter&gt;
-    &lt;action android:name=&quot;com.google.android.c2dm.intent.RECEIVE&quot; /&gt;
-    &lt;action android:name=&quot;com.google.android.c2dm.intent.REGISTRATION&quot; /&gt;
-    &lt;category android:name=&quot;my_app_package&quot; /&gt;
-  &lt;/intent-filter&gt;
-&lt;/receiver&gt;</pre>
-<p> This broadcast receiver is responsible for handling the 2 intents that can be sent by GCM (<code>com.google.android.c2dm.intent.RECEIVE</code> and <code>com.google.android.c2dm.intent.REGISTRATION</code>) and should be defined in the manifest (rather than programmatically) so that these intents can be received even if the application is not running. By setting the <code>com.google.android.c2dm.permission.SEND</code> permission, you are ensuring that only intents sent by the GCM system framework are sent to the receiver (a regular application cannot issue intents with that permission).</p>
-<p> Notice that <code>android:name</code> in the category tag must be replaced by your application's package name (and the category tag  is not required for applications targeted to minSdkVersion 16 and higher).<br>
-  </p>
-
-  <li>Add the following intent service:</li>
-
-
- <pre class="prettyprint pretty-xml">&lt;service android:name=&quot;.GCMIntentService&quot; /&gt;</pre>
-
-</ol>
-<p>This intent service will be called by the <code>GCMBroadcastReceiver</code> (which is provided by the GCM library), as shown in the next step. It must be a subclass of <code>com.google.android.gcm.GCMBaseIntentService</code>, must contain a public constructor, and should be named <code>my_app_package.GCMIntentService</code> (unless you use a subclass of <code>GCMBroadcastReceiver</code> that overrides the method used to name the service).</p>
-
-<p>The intent service must also define its sender ID(s). It does this as follows:</p>
-<ul>
-  <li>If the value is static, the service's default constructor should call <code>super(senderIds)</code>.</li>
-  <li>If the value is dynamic, the service should override the <code>getSenderIds()</code> method.</li>
-</ul>
-
-
-<h4>Step 3: Write the my_app_package.GCMIntentService class</h4>
-
-<p>Next write the <code>my_app_package.GCMIntentService</code> class, overriding the following callback methods (which are called by <code>GCMBroadcastReceiver</code>):<br>
-</p>
-<ul>
-  <li><code>onRegistered(Context context, String regId)</code>: Called after a registration intent is received, passes the registration ID assigned by GCM to that device/application pair as parameter. Typically, you should send the <code>regid</code> to your server so it can use it to send messages to this device.</li>
-  <li><code>onUnregistered(Context context, String regId)</code>: Called after the device has been unregistered from GCM. Typically, you should send the <code>regid</code> to the server so it unregisters the device.</li>
-  <li><code>onMessage(Context context, Intent intent)</code>: Called when your server sends a message to GCM, and GCM delivers it to the device. If the message has a payload, its contents are available as extras in the intent.</li>
-  <li><code>onError(Context context, String errorId)</code>: Called when the device tries to register or unregister, but GCM returned an error. Typically, there is nothing to be done other than evaluating the error (returned by errorId) and trying to fix the problem.</li>
-  <li> <code>onRecoverableError(Context context, String errorId)</code>: Called when the device tries to register or unregister, but the GCM servers are unavailable. The GCM library will retry the operation using exponential backup, unless this method is overridden and returns false. This method is optional and should be overridden only if you want to display the message to the user or cancel the retry attempts. 
-  </li>
-</ul>
-
-<p class="note"><strong>Note:</strong> The methods above run in the intent service's thread and hence are free to make network calls without the risk of blocking the UI thread.</p>
-
-<h4> Step 4: Write your application's main activity</h4>
-Add the following import statement in your application's main activity:
-<pre class="prettyprint pretty-java">import com.google.android.gcm.GCMRegistrar;</pre>
-<p> In the <code>onCreate()</code> method, add the following code:</p>
-<pre class="prettyprint pretty-java">GCMRegistrar.checkDevice(this);
-GCMRegistrar.checkManifest(this);
-final String regId = GCMRegistrar.getRegistrationId(this);
-if (regId.equals("")) {
-  GCMRegistrar.register(this, SENDER_ID);
-} else {
-  Log.v(TAG, "Already registered");
-}</pre>
-<p>The <code>checkDevice()</code> method verifies that the device supports GCM and throws an exception if it does not (for instance, if it is an emulator that does not contain the Google APIs). Similarly, the <code>checkManifest()</code> method verifies that the application manifest contains meets all the requirements described in <a href="#android-app">Writing the Android Application</a> (this method is only necessary when you are developing the application; once the application is ready to be published, you can remove it).</p>
-
-<p>Once the sanity checks are done, the device calls <code>GCMRegsistrar.register()</code> to register the device, passing the <code>SENDER_ID</code> you got when you signed up for GCM. But since the <code>GCMRegistrar</code> singleton keeps track of the registration ID upon the arrival of registration intents, you can call <code>GCMRegistrar.getRegistrationId()</code> first to check if the device is already registered.</p>
-<p class="note"><strong>Note:</strong> It is possible that the device was successfully registered to GCM but failed to send the registration ID to your server, in which case you should retry. See <a href="adv.html#reg-state">Advanced Topics</a> for more details on how to handle this scenario.</p>
-
-<h2 id="server-app">Writing the Server-side Application</h2>
-
-<p>To write the server-side application:</p>
-<ol>
-  <li> Copy the <code>gcm-server.jar</code> file from the SDK's <code>gcm-server/dist</code> directory to your server classpath.</li>
-  <li>Create a servlet (or other server-side mechanism) that can be used by the Android application to send the registration ID received by GCM . The application might also need to send other information&mdash;such as the user's email address or username&mdash;so that the server can associate the registration ID with the user owning the device.</li>
-  <li>Similarly, create a servlet used to unregister registration IDs.<br>
-    </li>
-<li>When the server needs to send a message to the registration ID, it can use the <code>com.google.android.gcm.server.Sender</code> helper class from the GCM library. For example:</li>
-</ol>
-
-<pre class="prettyprint pretty-java">import com.google.android.gcm.server.*;
-
-Sender sender = new Sender(myApiKey);
-Message message = new Message.Builder().build();
-MulticastResult result = sender.send(message, devices, 5);</pre>
-
-<p> The snippet above does the following:
-<ul>
-<li>Creates a <code>Sender</code> object using your project's API key.</li>
-<li>Creates a message using a given registration ID (the message builder also has methods to set all message parameters such as the collapse key and payload data).</li>
-<li>Sends the message with a maximum of 5 retry attempts (in case the GCM servers are unavailable), and stores the response on result. </li>
-</ul>
-<p>It's now necessary to parse the result and take the proper action in the following cases:</p>
-<ul>
-  <li>If the message was created but the result returned a canonical registration ID, it's necessary to replace the current registration ID with the canonical one.</li>
-  <li>If the returned error is <code>NotRegistered</code>, it's necessary to remove that registration ID, because the application was uninstalled from the device.</li>
-</ul>
-<p> Here's a code snippet that handles these 2 conditions:</p>
-<pre class="prettyprint pretty-java">
-if (result.getMessageId() != null) {
- String canonicalRegId = result.getCanonicalRegistrationId();
- if (canonicalRegId != null) {
-   // same device has more than on registration ID: update database
- }
-} else {
- String error = result.getErrorCodeName();
- if (error.equals(Constants.ERROR_NOT_REGISTERED)) {
-   // application has been removed from device - unregister database
- }
-}</pre>
diff --git a/docs/html/google/gcm/http.jd b/docs/html/google/gcm/http.jd
deleted file mode 100644
index e36440a..0000000
--- a/docs/html/google/gcm/http.jd
+++ /dev/null
@@ -1,445 +0,0 @@
-page.title=GCM HTTP Connection Server
-@jd:body
-
-<div id="qv-wrapper">
-<div id="qv">
-
-
-<h2>In this document</h2>
-
-<ol class="toc">
-  <li><a href="#auth">Authentication</a> </li>
-  <li><a href="#request">Request Format</a> </li>
-  <li><a href="#response">Response Format</a>
-  <ol class="toc">
-    <li><a href="#success">Interpreting a success response</a>
-    <li><a href="#error_codes">Interpreting an error response</a>
-    <li><a href="#example-responses">Example responses</a>
-  </ol>
-  </li>
-  <li><a href="#app-server">Implementing an HTTP-Based App Server</a>
-</ol>
-
-<h2>See Also</h2>
-
-<ol class="toc">
-<li><a href="server-ref.html">Server Reference</a></li>
-<li><a href="gs.html">Getting Started</a></li>
-<li><a href="client.html">Implementing GCM Client</a></li>
-<li><a href="ccs.html">Cloud Connection Server</a></li>
-
-
-</ol>
-
-</div>
-</div>
-
-<p>This document describes the Google Cloud Messaging (GCM) HTTP
-connection server. Connection servers
-are the Google-provided servers that take messages from the 3rd-party
-application server and sending them to the device.</p>
-
-<p class="note"><strong>Note:</strong> The content in this document
-applies to <a href="http://developer.chrome.com/apps/cloudMessaging">
-GCM with Chrome apps</a> as well as Android.</p>
-
-<p>See the
-<a href="server-ref.html">Server Reference</a> for a list of all the message
-parameters and which connection server(s) supports them.</p>
-
-
-<h2 id="auth">Authentication</h2>
-
-<p>To send a  message, the application server issues a POST request. For example:</p>
-<pre>https://android.googleapis.com/gcm/send</pre>
-<p>A  message request is made of 2 parts: HTTP header and HTTP body.</p>
-
-<p>The HTTP header must contain the following headers:</p>
-<ul>
-  <li><code>Authorization</code>: key=YOUR_API_KEY</li>
-  <li><code>Content-Type</code>: <code>application/json</code> for JSON;
-<code>application/x-www-form-urlencoded;charset=UTF-8</code> for plain text.
-If <code>Content-Type</code> is omitted, the format
-is assumed to be plain text.
-  </li>
-</ul>
-
-<p>For example:
-</p>
-
-<pre>Content-Type:application/json
-Authorization:key=AIzaSyB-1uEai2WiUapxCs2Q0GZYzPu7Udno5aA
-
-{
-  "registration_ids" : ["APA91bHun4MxP5egoKMwt2KZFBaFUH-1RYqx..."],
-  "data" : {
-    ...
-  },
-}</pre>
-
-
-<p>The HTTP body content depends on whether you're using JSON or plain text.
-See
-<a href="server-ref.html#params">the Server Reference</a> for a list of all the
-parameters your JSON or plain text message can contain.</p>
-
-<h3 id="checkAPIkey">Checking the validity of an API key</h3>
-
-<p>If you receive authentication errors when sending messages, check the validity
-of your API key. For example, on Android, run the following command:</p>
-
-<pre># api_key=YOUR_API_KEY
-
-# curl --header "Authorization: key=$api_key" \
-       --header Content-Type:"application/json" \
-       https://android.googleapis.com/gcm/send \
-       -d "{\"registration_ids\":[\"ABC\"]}"</pre>
-
-<p>
-If you receive a 401 HTTP status code, your API key is not valid. Otherwise you
-should see something like this:</p>
-
-<pre>
-{"multicast_id":6782339717028231855,"success":0,"failure":1,
-"canonical_ids":0,"results":[{"error":"InvalidRegistration"}]}
-</pre>
-
-<p>
-If you want to confirm the validity of a registration ID, you can do so by
-replacing "ABC" with the registration ID.
-</p>
-
-
-  <h2 id="request">Request Format</h2>
-
-<p>This section shows you how to format a request for both JSON and plain text. See
-the <a href="server-ref.html#table1">Server Reference</a> for a complete
-list of the fields you can include in a request.</p>
-
-  <p>Here is the smallest possible request (a message without any parameters and
-just one recipient) using JSON:</p>
-
-  <pre class="prettyprint pretty-json">{ &quot;registration_ids&quot;: [ &quot;42&quot; ] }</pre>
-
-  <p>And here the same example using plain text:</p>
-  <pre class="prettyprint">registration_id=42</pre>
-
-  <p> Here is a message with a payload and 6 recipients:</p>
-
-  <pre class="prettyprint pretty-HTML">{ "data": {
-    "score": "5x1",
-    "time": "15:10"
-  },
-  "registration_ids": ["4", "8", "15", "16", "23", "42"]
-}</pre>
-  <p>Here is a message with all optional fields set and 6 recipients:</p>
-  <pre class="prettyprint pretty-json">{ "collapse_key": "score_update",
-  "time_to_live": 108,
-  "delay_while_idle": true,
-  "data": {
-    "score": "4x8",
-    "time": "15:16.2342"
-  },
-  "registration_ids":["4", "8", "15", "16", "23", "42"]
-}</pre>
-  <p>And here is the same message using plain-text format (but just 1 recipient):  </p>
-
-  <pre class="prettyprint">collapse_key=score_update&amp;time_to_live=108&amp;delay_while_idle=1&amp;data.score=4x8&amp;data.time=15:16.2342&amp;registration_id=42
-  </pre>
-
-<p>Here is a message that includes a notification key and payload:</p>
-
-<pre>
-{
-  "data": {
-    "message": "ciao"
-  },
-  "notification_key":"aUniqueKey"
-}
-</pre>
-
-<p>For more information about notifications and how to use them, see
-<a href="{@docRoot}google/gcm/notifications.html">User Notifications</a>.</p>
-
-
-<p class="note"><strong>Note:</strong> If your organization has a firewall
-that restricts the traffic to or
-from the Internet, you need to configure it to allow connectivity with GCM in order for
-your GCM client apps to receive messages.
-The ports to open are: 5228, 5229, and 5230. GCM typically only uses 5228, but
-it sometimes uses 5229 and 5230. GCM doesn't provide specific IPs, so you should allow
-your firewall to accept outgoing connections to all IP addresses
-contained in the IP blocks listed in Google's ASN of 15169.</p>
-
-
-
-<h2 id="response">Response format</h2>
-
-<p>There are two possible outcomes when trying to send a message:</p>
-<ul>
-  <li>The message is processed successfully. The HTTP response has a 200 status, and
-the body contains more information about the status of the message (including possible errors).</li>
-  <li>The GCM server rejects the request. The HTTP response contains a
-non-200 status code (such as 400, 401 or 5xx).</li>
-</ul>
-
-<p>When a JSON request is successful (HTTP status code 200), the JSON object returned
-contains the <a href="{@docRoot}google/gcm/server-ref.html#table4">
-Downstream HTTP message response body</a>.</p>
-
-<p>If the value of <code>failure</code> and <code>canonical_ids</code> is 0, it's
-not necessary to parse the remainder of the response. Otherwise, we recommend
-that you iterate through the results field and do the following for each object
-in that list:</p>
-<ul>
-  <li>If <code>message_id</code> is set, check for <code>registration_id</code>:
-    <ul>
-      <li>If <code>registration_id</code> is set, replace the original ID with
-the new value (canonical ID) in your server database. Note that the original ID
-is not part of the result, so you need to obtain it from the list of
-code>registration_ids</code> passed in the request (using the same index).</li>
-    </ul>
-  </li>
-  <li>Otherwise, get the value of <code>error</code>:
-    <ul>
-      <li>If it is <code>Unavailable</code>, you could retry to send it in another
-request.</li>
-      <li>If it is <code>NotRegistered</code>, you should remove the registration
-ID from your server database because the application was uninstalled from the
-device, or the client app isn't configured to receive
-messages.</li>
-      <li>Otherwise, there is something wrong in the registration ID passed in
-the request; it is probably a non-recoverable error that will also require removing
-the registration from the server database. See
-<a href="{@docRoot}google/gcm/server-ref.html#error-codes">Downstream message error response
-  codes</a> for all possible error values.</li>
-    </ul>
-  </li>
-</ul>
-
-<p>When a plain-text request is successful (HTTP status code 200), the response
-body contains 1 or 2 lines in the form of key/value pairs.
-The first line is always available and its content is either <code>id=<em>ID of
-sent message</em></code> or <code>Error=<em>GCM error code</em></code>. The second
-line, if available,
-has the format of <code>registration_id=<em>canonical ID</em></code>. The second
-line is optional, and it can only be sent if the first line is not an error. We
-recommend handling the plain-text response in a similar way as handling the
-JSON response:</p>
-<ul>
-  <li>If first line starts with <code>id</code>, check second line:
-    <ul>
-      <li>If second line starts with <code>registration_id</code>, gets its value
-and replace the registration IDs in your server database.</li>
-    </ul>
-  </li>
-  <li>Otherwise, get the value of <code>Error</code>:
-    <ul>
-      <li>If it is <code>NotRegistered</code>, remove the registration ID from
-your server database.</li>
-      <li>Otherwise, there is probably a non-recoverable error (<strong>Note:
-</strong>Plain-text requests will never return <code>Unavailable</code> as the
-error code, they would have returned a 500 HTTP status instead).</li>
-    </ul>
-  </li>
-</ul>
-
-
-<h3 id="example-responses">Example responses</h3>
-<p>This section shows a few examples of responses indicating messages that were
-processed successfully. See <a href="#request">Request Format</a> for
-the requests these responses are based on.</p>
-<p> Here is a simple case of a JSON message successfully sent to one recipient
-without canonical IDs in the response:</p>
-<pre class="prettyprint pretty-json">{ "multicast_id": 108,
-  "success": 1,
-  "failure": 0,
-  "canonical_ids": 0,
-  "results": [
-    { "message_id": "1:08" }
-  ]
-}</pre>
-
-<p>Or if the request was in plain-text format:</p>
-<pre class="prettyprint">id=1:08
-</pre>
-
-<p>Here are JSON results for 6 recipients (IDs 4, 8, 15, 16, 23, and 42 respectively)
-with 3 messages successfully processed, 1 canonical registration ID returned,
-and 3 errors:</p>
-<pre class="prettyprint pretty-json">{ "multicast_id": 216,
-  "success": 3,
-  "failure": 3,
-  "canonical_ids": 1,
-  "results": [
-    { "message_id": "1:0408" },
-    { "error": "Unavailable" },
-    { "error": "InvalidRegistration" },
-    { "message_id": "1:1516" },
-    { "message_id": "1:2342", "registration_id": "32" },
-    { "error": "NotRegistered"}
-  ]
-}
-</pre>
-<p> In this example:</p>
-<ul>
-  <li>First message: success, not required.</li>
-  <li>Second message: should be resent (to registration ID 8).</li>
-  <li>Third message: had an unrecoverable error (maybe the value got corrupted
-in the database).</li>
-  <li>Fourth message: success, nothing required.</li>
-  <li>Fifth message: success, but the registration ID should be updated in the
-server database (from 23 to 32).</li>
-  <li>Sixth message: registration ID (42) should be removed from the server database
-because the application was uninstalled from the device.</li>
-</ul>
-<p>Or if just the 4th message above was sent using plain-text format:</p>
-<pre class="prettyprint">Error=InvalidRegistration
-</pre>
-<p>If the 5th message above was also sent using plain-text format:</p>
-<pre class="prettyprint">id=1:2342
-registration_id=32
-</pre>
-
-
-<h2 id="app-server">Implementing an HTTP-Based App Server</h2>
-
-<p>This section gives examples of implementing an app server that works with the
-GCM HTTP connection server. Note that a full GCM implementation requires a
-client-side implementation, in addition to the server. This example is based on Android.</a>
-
-
-<p>Requirements</p>
-<p>For the web server:</p>
-<ul>
-  <li> <a href="http://ant.apache.org/">Ant 1.8</a> (it might work with earlier versions, but it's not guaranteed).</li>
-  <li>One of the following:
-    <ul>
-      <li>A running web server compatible with Servlets API version 2.5, such as
-<a href="http://tomcat.apache.org/">Tomcat 6</a> or <a href="http://jetty.codehaus.org/">Jetty</a>, or</li>
-      <li><a href="http://code.google.com/appengine/">Java App Engine SDK</a>
-version 1.6 or later.</li>
-    </ul>
-  </li>
-  <li>A Google account registered to use GCM.</li>
-  <li>The API  key for that account.</li>
-</ul>
-<p>For the Android application:</p>
-<ul>
-  <li>Emulator (or device) running Android 2.2 (ideally, 2.3 or above) with Google APIs.</li>
-  <li>The Google API project number of the account registered to use GCM.</li>
-</ul>
-
-<h3 id="gcm-setup">Setting Up GCM</h3>
-<p>Before proceeding with the server and client setup, it's necessary to register
-a Google account with the Google API Console, enable Google Cloud Messaging in GCM,
-and obtain an API key from the <a href="https://code.google.com/apis/console">
-Google API Console</a>.</p>
-<p>For instructions on how to set up GCM, see <a href="gs.html">Getting Started</a>.</p>
-
-
-<h3 id="server-setup">Setting Up an HTTP Server</h3>
-<p>This section describes the different options for setting up an HTTP server.</p>
-
-<h4 id="webserver-setup">Using a standard web server</h4>
-<p>To set up the server using a standard, servlet-compliant web server:</p>
-<ol>
-  <li>From the <a href="http://code.google.com/p/gcm">open source site</a>,
-download the following directories: <code>gcm-server</code>,
-<code>samples/gcm-demo-server</code>, and <code>samples/gcm-demo-appengine</code>.</p>
-
-
-  <li>In a text editor, edit the <code>samples/gcm-demo-server/WebContent/WEB-INF/classes/api.key</code> and replace the existing text with the API key obtained above.</li>
-  <li>In a shell window, go to the <code>samples/gcm-demo-server</code> directory.</li>
-  <li>Generate the server's WAR file by running <code>ant war</code>:</li>
-
-  <pre class="prettyprint">$ ant war
-
-Buildfile:build.xml
-
-init:
-   [mkdir] Created dir: build/classes
-   [mkdir] Created dir: dist
-
-compile:
-   [javac] Compiling 6 source files to build/classes
-
-war:
-     [war] Building war: <strong>dist/gcm-demo.war</strong>
-
-BUILD SUCCESSFUL
-Total time: 0 seconds
-</pre>
-
-  <li>Deploy the <code>dist/gcm-demo.war</code> to your running server. For instance, if you're using Jetty, copy <code>gcm-demo.war</code> to the <code>webapps</code> directory of the Jetty installation.</li>
-  <li>Open the server's main page in a browser. The URL depends on the server you're using and your machine's IP address, but it will be something like <code>http://192.168.1.10:8080/gcm-demo/home</code>, where <code>gcm-demo</code> is the application context and <code>/home</code> is the path of the main servlet.
-
-  </li>
-</ol>
-<p class="note"><strong>Note:</strong> You can get the IP by running <code>ifconfig</code> on Linux or MacOS, or <code>ipconfig</code> on Windows. </p>
-
-<p> You server is now ready.</p>
-
-<h4 id="appengine-setup">Using App Engine for Java</h4>
-
-<p>To set up the server using a standard App Engine for Java:</p>
-<ol>
-  <li>Get the files from the <a href="http://code.google.com/p/gcm">open source
-site</a>, as described above.</p>
-  </li>
-  <li>In a text editor, edit
-<code>samples/gcm-demo-appengine/src/com/google/android/gcm/demo/server/ApiKeyInitializer.java</code>
-and replace the existing text with the API key obtained above.
-
-  <p class="note"><strong>Note:</strong> The API key value set in that class will
-be used just once to create a persistent entity on App Engine. If you deploy
-the application, you can use App Engine's <code>Datastore Viewer</code> to change
-it later.</p>
-
-  </li>
-  <li>In a shell window, go to the <code>samples/gcm-demo-appengine</code> directory.</li>
-  <li>Start the development App Engine server by <code>ant runserver</code>,
-using the <code>-Dsdk.dir</code> to indicate the location of the App Engine SDK
-and <code>-Dserver.host</code> to set your server's hostname or IP address:</li>
-
-<pre class="prettyprint">
-$ ant -Dsdk.dir=/opt/google/appengine-java-sdk runserver -Dserver.host=192.168.1.10
-Buildfile: gcm-demo-appengine/build.xml
-
-init:
-    [mkdir] Created dir: gcm-demo-appengine/dist
-
-copyjars:
-
-compile:
-
-datanucleusenhance:
-  [enhance] DataNucleus Enhancer (version 1.1.4) : Enhancement of classes
-  [enhance] DataNucleus Enhancer completed with success for 0 classes. Timings : input=28 ms, enhance=0 ms, total=28 ms. Consult the log for full details
-  [enhance] DataNucleus Enhancer completed and no classes were enhanced. Consult the log for full details
-
-runserver:
-     [java] Jun 15, 2012 8:46:06 PM com.google.apphosting.utils.jetty.JettyLogger info
-     [java] INFO: Logging to JettyLogger(null) via com.google.apphosting.utils.jetty.JettyLogger
-     [java] Jun 15, 2012 8:46:06 PM com.google.apphosting.utils.config.AppEngineWebXmlReader readAppEngineWebXml
-     [java] INFO: Successfully processed gcm-demo-appengine/WebContent/WEB-INF/appengine-web.xml
-     [java] Jun 15, 2012 8:46:06 PM com.google.apphosting.utils.config.AbstractConfigXmlReader readConfigXml
-     [java] INFO: Successfully processed gcm-demo-appengine/WebContent/WEB-INF/web.xml
-     [java] Jun 15, 2012 8:46:09 PM com.google.android.gcm.demo.server.ApiKeyInitializer contextInitialized
-     [java] SEVERE: Created fake key. Please go to App Engine admin console, change its value to your API Key (the entity type is 'Settings' and its field to be changed is 'ApiKey'), then restart the server!
-     [java] Jun 15, 2012 8:46:09 PM com.google.appengine.tools.development.DevAppServerImpl start
-     [java] INFO: The server is running at http://192.168.1.10:8080/
-     [java] Jun 15, 2012 8:46:09 PM com.google.appengine.tools.development.DevAppServerImpl start
-     [java] INFO: The admin console is running at http://192.168.1.10:8080/_ah/admin
-</pre>
-
-  <li>Open the server's main page in a browser. The URL depends on the server
-you're using and your machine's IP address, but it will be something like
-<code>http://192.168.1.10:8080/home</code>, where <code>/home</code>
-is the path of the main servlet.</li>
-
-  <p class="note"><strong>Note:</strong> You can get the IP by running <code>ifconfig</code>
-on Linux or MacOS, or <code>ipconfig</code> on Windows.</p>
-
-</ol>
-<p> You server is now ready.</p>
diff --git a/docs/html/google/gcm/index.jd b/docs/html/google/gcm/index.jd
deleted file mode 100644
index af5d741..0000000
--- a/docs/html/google/gcm/index.jd
+++ /dev/null
@@ -1,70 +0,0 @@
-page.title=Google Cloud Messaging for Android
-page.tags=gcm
-header.hide=1
-@jd:body
-
-
-<div class="landing-banner">
-
-<div class="col-5" style="min-height:100px">
-  <img src="{@docRoot}images/gcm/gcm-logo.png" />
-</div>
-<div class="col-7">
-
-  <h1 itemprop="name" style="margin-bottom:0;">Google Cloud Messaging for Android</h1>
-  <p itemprop="description">
-  Google Cloud Messaging (GCM) for Android is a service that allows you to send data
-from your server to your users' Android-powered device, and also to receive messages from
-devices on the same connection. The GCM service handles all aspects of queueing of messages
-and delivery to the target Android application running on the target device, and it is
-completely free.
-</p>
-
-</div>
-</div>
-
-<div class="landing-docs">
-  <div class="col-6 normal-links">
-    <h3 style="clear:left">Key Developer Features</h3>
-    <h4>Send data from your server to users' Android-powered devices</h4>
-    <p>This could be a lightweight
-message telling your app there is new data to be fetched from the
-server (for instance, a movie uploaded by a friend), or it could be a message containing
-up to 4kb of payload data (so apps like instant messaging can consume the message directly).
-<a href="{@docRoot}google/gcm/gcm.html">GCM Architectural Overview.</a></p>
-
-    <h4>Send "send-to-sync" messages</h4>
-    <p>A send-to-sync (collapsible) message is often a "tickle" that tells a mobile
-    application to sync data from the server. For example, suppose you have an email
-    application. When a user receives new email on the server, the server pings the mobile
-    application with a "New mail" message. This tells the application to sync to the server
-    to pick up the new email.
-    <a href="{@docRoot}google/gcm/adv.html#s2s">Learn more &raquo;</a></p>
-
-    <h4>Send messages with payload</h4>
-    <p>Unlike a send-to-sync message, every "message with payload" (non-collapsible message)
-    is delivered. The payload the message contains can be up to 4kb.
-    <a href="{@docRoot}google/gcm/adv.html#payload">Learn more &raquo;</a></p>
-  </div>
-
-
-  <div class="col-6 normal-links">
-    <h3 style="clear:left">New Features</h3>
-
-
-
-    <h4>Return Receipts</h4>
-    <p>You can use upstream messaging to get receipt notifications, confirming that a given
-    message was sent to a device. Your 3rd-party app server receives the receipt notification
-    from CCS once the message has been sent to the device.
-    <a href="{@docRoot}google/gcm/ccs.html#receipts">Learn more &raquo;</a></p>
-
-
-   <h4>Get Started</h4>
-    <p>Get started with a tutorial that walks you through creating a GCM app.
-    <a href="{@docRoot}google/gcm/gs.html">Learn more &raquo;</a></p>
-  </div>
-
-</div>
-
-
diff --git a/docs/html/google/gcm/notifications.jd b/docs/html/google/gcm/notifications.jd
deleted file mode 100644
index 333d4b6..0000000
--- a/docs/html/google/gcm/notifications.jd
+++ /dev/null
@@ -1,308 +0,0 @@
-page.title=User Notifications
-@jd:body
-
-<div id="qv-wrapper">
-<div id="qv">
-
-<h2>Quickview</h2>
-
-<ul>
-<li>Learn how to send a single message to multiple devices owned by a single user.</li>
-</ul>
-
-
-<h2>In this document</h2>
-
-<ol class="toc">
-  <li><a href="#gen-server">Generate a Notification Key on the Server</a></li>
-  <li><a href="#gen-client">Generate a Notification Key on the Client</a></li>
-  <li><a href="#add">Add Registration IDs</a></li>
-  <li><a href="#remove">Remove Registration IDs</a></li>
-  <li><a href="#upstream">Send Upstream Messages</a></li>
-  <li><a href="#response">Response Formats</a>
-    <ol class="toc">
-      <li><a href="#response-create">Create/add/remove operations</a>
-      <li><a href="#response-send">Send operations</a>
-    </ol>
-  </li>
-</ol>
-
-<h2>See Also</h2>
-
-<ol class="toc">
-<li><a href="{@docRoot}google/gcm/gs.html">Getting Started</a></li>
-</ol>
-
-</div>
-</div>
-
-<p>With user notifications, 3rd-party app servers can send a single message to
-multiple instance of an app running on devices owned by a single user. This feature
-is called <em>user notifications</em>. User notifications make it possible for every
-app instance that a user owns to reflect the latest messaging state. For example:</p>
-
-  <ul>
-  <li>If a message has been handled on one device, the GCM message on the other
-devices are dismissed. For example, if a user has handled a calendar notification
-on one device, the notification will go away on the user's other devices.</li>
-
-  <li>If a message has not been delivered yet to a device and but it has been handled,
-the GCM server removes it from the unsent queue for the other devices.</li>
-
-  <li>Likewise, a device can send messages to the {@code notification_key}, which
-is the token that GCM uses to fan out notifications to all devices whose
-registration IDs are associated with the key.</li>
-</ul>
-
-<p>The way this works is that during registration, the 3rd-party server requests
-a {@code notification_key}. The {@code notification_key} maps a particular user
-to all of the user's associated registration IDs (a regID represents a particular
-Android application running on a particular device). Then instead of sending one
-message to one regID at a time, the 3rd-party server can send a message to to the
-{@code notification_key}, which then sends the message to all of the user's regIDs.</p>
-
-<p class="note"><strong>Note:</strong> A notification dismissal message is like any
-other upstream message, meaning that it will be delivered to the other devices that
-belong to the specified {@code notification_key}. You should design your app to
-handle cases where the app receives a dismissal message, but has not yet displayed
-the notification that is being dismissed. You can solve this by caching the dismissal
-and then reconciling it with the corresponding notification.
-</p>
-
-<p>You can use this feature with either the <a href="ccs.html">XMPP</a> (CCS) or
-<a href="http.html">HTTP</a> connection server.</p>
-
-<p>You can generate notification keys in two different ways: on the server, and on
-the client, if the user has a Google account. All of the associated registration IDs
-can be mapped to a single user.</p>
-
-<p>The examples below show you how to perform generate/add/remove operations,
-and how to send upstream messages. For generate/add/remove operations, the
-message body is JSON.</p>
-
-<h2 id="gen-server">Generate a Notification Key on the Server</h2>
-
-<p>To generate a notification key on the server, you create a new
-<code>notification_key</code> and map it to a
-<code>notification_key_name</code>.</p>
-
-<p>This example shows how to create a new <code>notification_key</code> for a
-<code>notification_key_name</code> called <code>appUser-Chris</code>.
-The {@code notification_key_name} is a name or identifier (it can be a username for
-a 3rd-party app) that is unique to a given user. It is used by third parties to
-group together registration IDs for a single user. Note that <code>notification_key_name</code>
-and <code>notification_key</code> are unique to a group of registration IDs. It is also
-important that <code>notification_key_name</code> be uniquely named per app in case
-you have multiple apps for the same project ID. This ensures that notifications
-only go to the intended target app.</p>
-
-
-<p>A create operation returns a token (<code>notification_key</code>). Third parties
-must save this token (as well as its mapping to the <code>notification_key_name</code>)
-to use in subsequent operations:</p>
-
-<pre>request:
-{ 
-   &quot;operation&quot;: &quot;create&quot;,
-   &quot;notification_key_name&quot;: &quot;appUser-Chris&quot;,
-   &quot;registration_ids&quot;: [&quot;4&quot;, &quot;8&quot;, &quot;15&quot;, &quot;16&quot;, &quot;23&quot;, &quot;42&quot;]
-}</pre>
-
-<h3 id="request-server">Request format</h3>
-
-<p>To send a message in cases where your notification key is generated on the server,
-the application server issues a POST request to
-<code>https://android.googleapis.com/gcm/notification</code>.</p>
-
-<p>Here is the HTTP request header you should use for all server side create/add/remove operations:</p>
-
-<pre>content-type: "application/json"
-Header : "project_id": &lt;projectID&gt;
-Header: "Authorization", "key=API_KEY"
-</pre>
-
-
-<h2 id="gen-client">Generate a Notification Key on the Client</h2>
-
-<p>Generating a notification key on the client is useful for cases where a server is unavailable.
-To generate a notification key on the client, the device must have at least one
-Google account. Note that the process for generating a notification key on the client is significantly
-different from the server process described above.</p>
-
-<p>To generate a notification key on the client:</p>
-
-<ol>
-  <li>Open your project in the <a href="https://cloud.google.com/console">Google Developers Console</a>.</li>
-  <li>Click <strong>APIS &amp; AUTH &gt; Credentials</strong>.</li>
-  <li>Under OAuth, click <strong>Create new Client ID</strong>.</li>
-  <li>In the <strong>Create Client ID</strong> dialog, select <strong>Web Application</strong> as
-the application type, and click <strong>Create Client ID</strong>.</li>
-  <li>Copy the value from <strong>Client ID for web application &gt; Client ID</strong>.
-This client ID represents a Google account "scope" that you will use to generate an {@code id_token}.</li>
-</ol>
-
-<p>Once you've followed the above steps and gotten a client ID from Google Developers Console,
- you're ready to add this feature to your app. First check the device for the presence of a Google
-account. For example:</p>
-
-<pre>// This snippet takes the simple approach of using the first returned Google account,
-// but you can pick any Google account on the device.
-public String getAccount() {
-    Account[] accounts = AccountManager.get(getActivity()).
-        getAccountsByType(&quot;com.google&quot;);
-    if (accounts.length == 0) {
-        return null;
-    }
-    return accounts[0].name;
-}</pre>
-
-<p>Next, get an authentication token ({@code id_token}) by using the <code><a href=
-"http://developer.android.com/reference/com/google/android/gms/auth/GoogleAuthUtil.html">GoogleAuthUtil</a></code>
-class. For example:</p>
-
-<pre>String accountName = getAccount();
-
-// Initialize the scope using the client ID you got from the Console.
-final String scope = &quot;audience:server:client_id:&quot;
-        + &quot;1262xxx48712-9qs6n32447mcj9dirtnkyrejt82saa52.apps.googleusercontent.com&quot;;
-String id_token = null;
-try {
-    id_token = GoogleAuthUtil.getToken(context, accountName, scope);
-} catch (Exception e) {
-    log(&quot;exception while getting id_token: &quot; + e);
-}
-...</pre>
-
-<p>Now use <code>id_token</code> to authenticate your request.
-This add operation returns a {@code notification_key}.
-Third parties must save this {@code notification_key} (as well as its mapping to the
-<code>notification_key_name</code>)
-to use in subsequent operations. Note that a client request only takes a single regID.
-The only operations supported on the client side are add/remove.</p>
-
-<pre>request:
-{
-   &quot;operation&quot;: &quot;add&quot;,
-   &quot;notification_key_name&quot;: &quot;appUser-Chris&quot;,
-   &quot;registration_ids&quot;: [&quot;4&quot;]
-   &quot;id_token&quot;: &quot;id_token&quot;
-}</pre>
-
-<h3 id="request-client">Request format</h3>
-
-<p>To send a message in cases where your notification key is generated on the client,
-the application server issues a POST request to
-<code>https://android.googleapis.com/gcm/googlenotification</code>.</p>
-
-<p>Here is the HTTP request header you should use for all add/remove operations. The
-client side doesn't support the create operation;
-the add operation has the effect of creating the notification key if it doesn't already
-exist:</p>
-
-<pre>content-type: "application/json"
-Header : "project_id": &lt;projectID&gt;
-</pre>
-
-<p>Note that the authentication token is passed in the JSON body as shown above, not the header.
-This is different from the server case.</p>
-
-
-<h2 id="add">Add Registration IDs</h2>
-
-<p>This example shows how to add registration IDs for a given notification key.
-The maximum number of members allowed for a {@code notification_key} is 20.</p>
-
-<p>Note that the <code>notification_key_name</code> is not strictly required for
-adding/removing regIDs. But including it protects you against accidentally using
-the incorrect <code>notification_key</code>.</p>
-
-<pre>request:
-{ 
-   &quot;operation&quot;: &quot;add&quot;,
-   &quot;notification_key_name&quot;: &quot;appUser-Chris&quot;,
-   &quot;notification_key&quot;: &quot;aUniqueKey&quot;
-   &quot;registration_ids&quot;: [&quot;4&quot;, &quot;8&quot;, &quot;15&quot;, &quot;16&quot;, &quot;23&quot;, &quot;42&quot;]
-}</pre>
-
-<h2 id="remove">Remove Registration IDs</h2>
-
-<p>This example shows how to remove registration IDs for a given notification key:</p>
-<pre>request:
-{ 
-   &quot;operation&quot;: &quot;remove&quot;,
-   &quot;notification_key_name&quot;: &quot;appUser-Chris&quot;,
-   &quot;notification_key&quot;: &quot;aUniqueKey&quot;
-   &quot;registration_ids&quot;: [&quot;4&quot;, &quot;8&quot;, &quot;15&quot;, &quot;16&quot;, &quot;23&quot;, &quot;42&quot;]
-}</pre>
-
-<h2 id="upstream">Send Upstream Messages</h2>
-
-<p>To send an upstream (device-to-cloud) message, you must use the
-<a href="{@docRoot}reference/com/google/android/gms/gcm/GoogleCloudMessaging.html">
-{@code GoogleCloudMessaging}</a> API. Specifying a {@code notification_key} as the target
-for an upstream message allows a user on one device to send a message to other
-devices in the notification group&mdash;for example, to dismiss a notification.
-Here is an example that shows targeting a {@code notification_key}:</p>
-
-<pre>GoogleCloudMessaging gcm = GoogleCloudMessaging.get(context);
-String to = NOTIFICATION_KEY;
-AtomicInteger msgId = new AtomicInteger();
-String id = Integer.toString(msgId.incrementAndGet());
-Bundle data = new Bundle();
-data.putString("hello", "world");
-
-gcm.send(to, id, data);
-</pre>
-
-<p>This call generates the necessary XMPP stanza for sending the message. The
-Bundle data consists of a key-value pair.</p>
-
-<p>For a complete example, see <a href="client.html">Implementing GCM Client</a>.
-
-<h2 id="response">Response Formats</h2>
-
-<p>This section shows examples of the responses that can be returned for
-notification key operations.</p>
-
-<h3 id="response-create">Create/add/remove operations</h3>
-
-<p>When you make a request to create a {@code notification_key} or to add/remove its
-regIDs, a successful response always returns the <code>notification_key</code>.
-Use the returned {@code notification_key} for sending messages:</p>
-
-<pre>HTTP status: 200
-{ 
-    &quot;notification_key&quot;: &quot;aUniqueKey&quot;,   // to be used for sending
-}</pre>
-
-
-<h3 id="response-send">Send operations</h3>
-
-<p>For a send operation that has a {@code notification_key} as its target, the
-possible responses are success, partial success, and failure.</p>
-
-<p>Here is an example of "success"&mdash;the {@code notification_key} has 2 regIDs
-associated with it, and the message was successfully sent to both of them:</p>
-
-<pre>{
-  "success": 2,
-  "failure": 0
-}</pre>
-
-<p>Here is an example of "partial success"&mdash;the {@code notification_key} has
-3 regIDs associated with it. The message was successfully send to 1 of the regIDs,
-but not to the other 2. The response message lists the regIDs that failed to
-receive the message:</p>
-
-<pre>{
-  "success":1,
-  "failure":2,
-  "failed_registration_ids":[
-     "regId1",
-     "regId2"
-  ]
-}</pre>
-
-<p>In the case of failure, the response has HTTP code 503 and no JSON. When a message
-fails to be delivered to one or more of the regIDs associated with a {@code notification_key},
-the 3rd-party server should retry.</p>
diff --git a/docs/html/google/gcm/server-ref.jd b/docs/html/google/gcm/server-ref.jd
deleted file mode 100644
index 2a41e58..0000000
--- a/docs/html/google/gcm/server-ref.jd
+++ /dev/null
@@ -1,764 +0,0 @@
-page.title=Server Reference
-@jd:body
-
-<div id="qv-wrapper">
-<div id="qv">
-
-<h2>In this document</h2>
-
-<ol class="toc">
-  <li><a href="#downstream">Downstream Messages</a></li>
-<ol class="toc">
-      <li><a href="#send-downstream">Sending a downstream message</a></li>
-      <li><a href="#interpret-downstream">Interpreting a downstream message response</a></li>
-    </ol>
-  <li><a href="#upstream">Upstream Messages (XMPP)</a>
-    <ol class="toc">
-      <li><a href="#interpret-upstream">Interpreting an upstream XMPP message</a></li>
-      <li><a href="#upstream-response">Sending an upstream XMPP message response</a></li>
-    </ol>
-  </li>
-<li><a href="#ccs">Cloud Connection Server Messages (XMPP)</a></li>
-<li><a href="#error-codes">Downstream message error response codes (HTTP and XMPP)</a></li>
-</ol>
-
-</div>
-</div>
-
-<p>This document provides a reference for the syntax used to pass
-messages back and forth in GCM. These messages fall into
-the following broad categories:</p>
-
-<ul>
-   <li><a href="#downstream">Downstream messages</a></li>
-   <li><a href="#upstream">Upstream messages</a></li>
-   <li><a href="#ccs">Cloud Connection Server messages (XMPP)</a></li>
-   <li><a href="#error-codes">Downstream message error response codes (HTTP and XMPP)</a></li>
-</ul>
-
-<p>The following sections describe the basic requirements for
-sending messages.</p>
-
-<h2 id="downstream">Downstream Messages</h2>
-<p>This is the message that a 3rd-party app server sends to a client app.
-</p>
-<p>A downstream message includes the following components:</p>
-<ul>
-  <li>Target: specifies the recipient of the message.</li>
-  <li>Options: specifies attributes of the message.</li>
-  <li>Payload: specifies additional content to be included in the message. Optional.</li>
-</ul>
-
-<p>The syntax for each of these components is described in the tables below. </p>
-
-<h3 id="send-downstream">Sending a downstream message</h3>
-
-<p>This section gives the syntax for sending a downstream messages. For JSON,
-these messages can be either HTTP or XMPP. For plain text, these messages can only be HTTP.</p>
-
-<h4>Downstream HTTP or XMPP messages (JSON)</h4>
-
-<p>The following table lists the targets, options, and payload for HTTP or XMPP JSON messages.</p>
-<p class="table-caption" id="table1">
-  <strong>Table 1.</strong> Targets, options, and payload for downstream HTTP or XMPP message (JSON).</p>
-<table border="1">
-  <tr>
-    <th>Parameter</th>
-    <th>Protocol</th>
-    <th>Usage</th>
-    <th>Description</th>
-  </tr>
-<tr>
-    <td colspan="4"><strong>Targets</strong></td>
-  </tr>
-  <tr>
-    <td><code>to</code></td>
-    <td>XMPP</td>
-    <td>Required, string</td>
-    <td><p>This parameter specifies the recipient of a message. </p>
-      <p>The value must be a registration ID or notification key.</p>
-    <p>This parameter is used in XMPP in place of {@code registration_ids} or   {@code notification_key} in HTTP.</p></td>
-  </tr>
-  <tr>
-    <td><code>registration_ids</code></td>
-    <td>HTTP</td>
-    <td>Required if {@code notification_key} not present, string array</td>
-    <td><p>This parameter specifies the list of devices (registration IDs)
-receiving the message. It must contain at least 1 and at most 1000 registration IDs.</p>
-      <p>Multicast messages (sending to more than 1 registration IDs) are allowed using HTTP JSON format only.</p>
-    <p>This parameter or {@code notification_key} is used in HTTP in place of {@code to} in XMPP.</p></td>
-  </tr>
-  <tr>
-    <td><code>notification_key</code></td>
-    <td>HTTP</td>
-    <td>Required if {@code registration_ids} not present, string</td>
-    <td><p>This parameter specifies the mapping of a single user to
-multiple registration IDs associated with that user.</p>
-      <p>This allows a 3rd-party app server to send a single message to multiple app instances
-(typically on multiple devices) owned by a single user.</p>
-      <p>A 3rd-party app server can use {@code notification_key} as the target for a
-message instead of an individual registration ID (or array of registration IDs).
-The maximum number of members allowed for a {@code notification_key} is 20.</p>
-      <p>This parameter or {@code registration_ids} is used in HTTP in place of {@code to} in XMPP.</p>
-    <p>See <a href="notifications.html">User Notifications</a> for details.</p></td>
-  </tr>
-<tr>
-    <td colspan="4"><strong>Options</strong></td>
-  </tr>
-  <tr>
-    <td><code>message_id</code></td>
-    <td>XMPP</td>
-    <td>Required, string</td>
-    <td><p>This parameter uniquely identifies a message in an XMPP connection.</p></td>
-  </tr>
-  <tr>
-    <td><code>collapse_key</code></td>
-    <td>HTTP, XMPP</td>
-    <td>Optional, string</td>
-    <td><p>This parameters identifies a group of messages (e.g., with
-{@code collapse_key: "Updates Available"}) that can be collapsed, so that only the
-last message gets sent when delivery can be resumed. This is intended to avoid sending too
-many of the same messages when the device comes back online or becomes active (see {@code delay_while_idle}).</p>
-      <p>Note that there is no guarantee of the order in which messages get sent.</p>
-      <p>Messages with collapse key are also called
-<a href="{@docRoot}google/gcm/server.html#s2s">send-to-sync messages</a> messages.
-</p>
-    <p>Note: A maximum of 4 different collapse keys is allowed at any given time. This means a
-GCM connection server can simultaneously store 4 different send-to-sync messages per client app. If you
-exceed this number, there is no guarantee which 4 collapse keys the GCM connection server will keep. </p></td>
-  </tr>
-  <tr>
-    <td><code>delay_while_idle</code></td>
-    <td>HTTP, XMPP</td>
-    <td>Optional, JSON boolean</td>
-    <td>When this parameter is set to {@code true}, it indicates that the message should not be
-sent until the device becomes active.</p>
-    <p>The default value is {@code false}.</p></td>
-  </tr>
-  <tr>
-    <td><code>time_to_live</code></td>
-    <td>HTTP, XMPP</td>
-    <td>Optional, JSON number</td>
-    <td><p>This parameter specifies how long (in seconds) the message should be kept in GCM storage
-if the device is offline. The maximum time to live supported is 4 weeks.</p>
-    <p>The default value is 4 weeks. </p></td>
-  </tr>
-  <tr>
-    <td><code>delivery_receipt_
-<br>requested</code></td>
-    <td>XMPP</td>
-    <td>Optional, JSON boolean</td>
-    <td><p>This parameter lets 3rd-party app server request confirmation of message delivery.</p>
-      <p>When this parameter is set to {@code true}, CCS sends a delivery receipt
-when the device confirms that it received the message.</p>
-    <p>The default value is {@code false}.</p></td>
-  </tr>
-  <tr>
-    <td><code>restricted_package_
-<br>name</code></td>
-    <td>HTTP</td>
-    <td>Optional, string</td>
-    <td>This parameter specifies the package name of the application where the
-registration IDs must match in order to receive the message.</td>
-  </tr>
-  <tr>
-    <td><code>dry_run</code></td>
-    <td>HTTP</td>
-    <td>Optional, JSON boolean</td>
-    <td><p>This parameter, when set to {@code true}, allows developers to test a
-request without actually sending a message.</p>
-    <p>The default value is {@code false}.</p></td>
-  </tr>
-<tr>
-    <td colspan="4"><strong>Payload</strong></td>
-  </tr>
-  <tr>
-    <td><code>data</code></td>
-    <td>HTTP, XMPP</td>
-    <td>Optional, JSON object</td>
-    <td><p>This parameter specifies the key-value pairs of the message's payload. There is
-no limit on the number of key-value pairs, but there is a total message size limit of 4kb.</p>
-      <p>For instance, in Android, <code>data:{"score":"3x1"}</code> would result in an intent extra
-named {@code score} with the string value {@code 3x1}.</p>
-      <p>The key should not be a reserved word ({@code from} or any word starting with
-{@code google}). It is also not recommended to use words defined in this table
-(such as {@code collapse_key}) because that could yield unpredictable outcomes. </p>
-    <p>Values in string types are recommended. You have to convert values in objects
-or other non-string data types (e.g., integers or booleans) to string.</p></td>
-  </tr>
-</table>
-
-<h3>Downstream HTTP messages (Plain Text)</h3>
-
-<p>The following table lists the syntax for targets, options, and payload in plain
-text downstream HTTP messages.</p>
-
-<p class="table-caption" id="table2">
-  <strong>Table 2.</strong> Targets, options, and payload for downstream plain text HTTP messages.</p>
-
-<table border="1">
-  <tr>
-    <th>Parameter</th>
-    <th>Usage</th>
-    <th>Description</th>
-  </tr>
-<tr>
-    <td colspan="3"><strong>Targets</strong></td>
-  </tr>
-  <tr>
-    <td><code>registration _id</code></td>
-    <td>Required, string</td>
-    <td><p>This parameter specifies the client apps (registration ID) receiving the message.</p>
-    <p>Multicast messaging (sending to more than one registration ID) is allowed using HTTP JSON format only.</p></td>
-  </tr>
-<tr>
-    <td colspan="3"><strong>Options</strong></td>
-  </tr>
-  <tr>
-    <td><code>collapse_key</code></td>
-    <td>Optional, string</td>
-    <td>See <a href="#table1">table 1</a> for details.</td>
-  </tr>
-  <tr>
-    <td><code>delay_while_idle</code></td>
-    <td>Optional, boolean or number</td>
-    <td>See <a href="#table1">table 1</a> for details.</td>
-  </tr>
-  <tr>
-    <td><code>time_to_live</code></td>
-    <td>Optional, number</td>
-    <td>See <a href="#table1">table 1</a> for details.</td>
-  </tr>
-  <tr>
-    <td><code>restricted_package_name</code></td>
-    <td>Optional, string</td>
-    <td>See <a href="#table1">table 1</a> for details.</td>
-  </tr>
-  <tr>
-    <td><code>dry_run </code></td>
-    <td>Optional, boolean</td>
-    <td>See <a href="#table1">table 1</a> for details.</td>
-  </tr>
-<tr>
-    <td colspan="3"><strong>Payload</strong></td>
-  </tr>
-  <tr>
-    <td><code>data.&lt;key&gt;</code></td>
-    <td>Optional, string</td>
-    <td><p>This parameter specifies the key-value pairs of the message's payload.
-There is no limit on the number of key-value parameters,
-but there is a total message size limit of 4kb.</p>
-      <p>For instance, in Android, <code>data:{"score":"3x1"}</code> would result in an intent extra
-named {@code score} with the string value {@code 3x1}.</p>
-    <p>The key should not be a reserved word ({@code from} or any word starting with
-{@code google}). It is also not recommended to use words defined in this table
-(such as {@code collapse_key}) because that could yield unpredictable outcomes.</p></td>
-  </tr>
-</table>
-
-<h3 id="interpret-downstream">Interpreting a Downstream Message Response</h3>
-
-<p>This section describes the syntax of a response to a downstream message. A client
-app or the GCM Connection Server sends the response to 3rd-party app server upon processing
-the message request. </p>
-
-<h4>Interpreting a downstream HTTP message response </h4>
-<p>The 3rd-party app server should look at both the message response header and the body
-to interpret the message response sent from the GCM Connection Server. The following table
-describes the possible responses.</p>
-<p>
-
-<p class="table-caption" id="table3">
-  <strong>Table 3.</strong> Downstream HTTP message response header.</p>
-<table border=1>
-  <tr>
-    <th>Response</th>
-    <th>Description</th>
-  </tr>
-  <tr>
-    <td>200</td>
-    <td>Message was processed successfully. The response body will contain more
-details about the message status, but its format will depend whether the request
-was JSON or plain text. See <a href="#table4">table 4</a>
-for more details.</td>
-  </tr>
-  <tr>
-    <td>400</td>
-    <td>Only applies for JSON requests.
-Indicates that the request could not be parsed as JSON, or it contained invalid
-fields (for instance, passing a string where a number was expected). The exact
-failure reason is described in the response and the problem should be addressed
-before the request can be retried.</td>
-  </tr>
-  <tr>
-    <td>401</td>
-    <td>There was an error authenticating the sender account.
-<a href="server.html#auth_error">Troubleshoot</a></td>
-  </tr>
-  <tr>
-    <td>5xx</td>
-    <td>Errors in the 500-599 range (such as 500 or 503) indicate that there was
-an internal error in the GCM server while trying to process the request, or that
-the server is temporarily unavailable (for example, because of timeouts). Sender
-must retry later, honoring any <code>Retry-After</code> header included in the
-response. Application servers must implement exponential back-off.
-<a href="server.html#internal_error">Troubleshoot</a></td>
-  </tr>
-</table>
-
-<p>The following table lists the fields in a downstream message response body
-(JSON).</p>
-
-
-<p class="table-caption" id="table4">
-  <strong>Table 4.</strong> Downstream HTTP message response body (JSON).</p>
-<table>
-  <tr>
-    <th>Parameter</th>
-    <th>Usage</th>
-    <th>Description</th>
-  </tr>
-  <tr>
-    <td><code>multicast_id</code></td>
-    <td>Required, number</td>
-    <td>Unique ID (number) identifying the multicast message.</td>
-  </tr>
-  <tr>
-    <td><code>success</code></td>
-    <td>Required, number</td>
-    <td>Number of messages that were processed without an error.</td>
-  </tr>
-  <tr>
-    <td><code>failure</code></td>
-    <td>Required, number</td>
-    <td>Number of messages that could not be processed.</td>
-  </tr>
-  <tr>
-    <td><code>canonical_ids</code></td>
-    <td>Required, number</td>
-    <td>Number of results that contain a canonical registration ID. See the
-<a href="{@docRoot}google/gcm/gcm.html#canonical">Overview</a> for more discussion of this topic.</td>
-  </tr>
-  <tr>
-    <td><code>results</code></td>
-    <td>Optional, array object</td>
-    <td>Array of objects representing the status of the messages processed. The
-objects are listed in the same order as the request (i.e., for each registration
-ID in the request, its result is listed in the same index in the response).<br>
-      <ul>
-        <li><code>message_id</code>: String specifying a unique ID for each successfully processed
-          message.</li>
-        <li><code>registration_id</code>: Optional string specifying the canonical registration ID
-          for the client app that the message was processed and sent to. Sender should use this
-          value as the Registration ID for future requests. Otherwise, the messages might
-          be rejected.
-        </li>
-        <li><code>error</code>: String specifying the error that occurred when processing the
-          message for the recipient. The possible values can be found in <a href="#table11">table 11
-        </a>.</li>
-    </ul></td>
-  </tr>
-</table>
-
-
-<p class="table-caption" id="table5">
-  <strong>Table 5.</strong> Success response for downstream HTTP message response body (Plain Text).</p>
-<table border="1">
-  <tr>
-    <th>Parameter</th>
-    <th>Usage</th>
-    <th>Description</th>
-  </tr>
-  <tr>
-    <td><code>id</code></td>
-    <td>Required, string</td>
-    <td>This parameter specifies the unique message ID that GCM server processed successfully.</td>
-  </tr>
-  <tr>
-    <td><code>registration_id</code></td>
-    <td>Optional, string</td>
-    <td>This parameter specifies the canonical registration ID for the client app that the message was
-processed and sent to. Sender should replace the registration ID with this value on future requests,
-otherwise, the messages might be rejected.</td>
-  </tr>
-</table>
-
-<p class="table-caption" id="table6">
-  <strong>Table 6.</strong> Error response for downstream HTTP message response body (Plain Text).</p>
-<table border="1">
-  <tr>
-    <th>Parameter</th>
-    <th>Usage</th>
-    <th>Description</th>
-  </tr>
-  <tr>
-    <td>{@code Error}</td>
-    <td>Required, string</td>
-    <td>This parameter specifies the error value while processing the message for the recipient.
-See <a href="#table11">table 11</a> for details. </td>
-  </tr>
-</table>
-
-<h4>Interpreting a downstream XMPP message response</h4>
-
-<p>The following table lists the fields that appear in a downstream XMPP message response.</p>
-
-<p class="table-caption" id="table7">
-  <strong>Table 7.</strong> Downstream message XMPP message response body.</p>
-<table border="1">
-  <tr>
-    <th>Parameter</th>
-    <th>Usage</th>
-    <th>Description</th>
-  </tr>
-  <tr>
-    <td><code>from</code></td>
-    <td>Required, string</td>
-    <td><p>This parameter specifies who sent this response.</p>
-    <p>The value is the registration ID of the client app.</p></td>
-  </tr>
-  <tr>
-    <td><code>message_id</code></td>
-    <td>Required, string</td>
-    <td>This parameter uniquely identifies a message in an XMPP connection.
-The value is a string that uniquely identifies the associated message.</td>
-  </tr>
-  <tr>
-    <td><code>message_type</code></td>
-    <td>Required, string</td>
-    <td><p>This parameter specifies an 'ack' or 'nack' message from XMPP (CCS)
-to the 3rd-party app server.</p>
-    <p>If the value is set to {@code nack}, the 3rd-party app server should look at
-{@code error} and {@code error_description} to get failure information. </p></td>
-  </tr>
-  <tr>
-    <td><code>error</code></td>
-    <td>Optional, string</td>
-    <td>This parameter specifies an error related to the downstream message. It is set when the
-{@code message_type} is {@code nack}. See <a href="#table11">table 6</a> for details.</td>
-  </tr>
-  <tr>
-    <td><code>error_description</code></td>
-    <td>Optional, string</td>
-    <td>This parameter provides descriptive information for the error. It is set
-when the {@code message_type} is {@code nack}.</td>
-  </tr>
-</table>
-<h2 id="upstream">Upstream Messages (XMPP)</h2>
-
-<p>An upstream message is a message the client app sends to the 3rd-party app server.
-Currently only CCS (XMPP) supports upstream messaging.</p>
-
-<h3 id="interpret-upstream">Interpreting an upstream XMPP message </h3>
-<p>The following table describes the fields that appear in an upstream XMPP message.
-
-<p class="table-caption" id="table8">
-  <strong>Table 8.</strong> Upstream XMPP messages.</p>
-<table border="1">
-  <tr>
-    <th>Parameter</th>
-    <th>Usage</th>
-    <th>Description</th>
-  </tr>
-  <tr>
-    <td><code>from</code></td>
-    <td>Required, string</td>
-    <td><p>This parameter specifies who sent the message.</p>
-    <p>The value is the registration ID of the client app.</p></td>
-  </tr>
-  <tr>
-    <td><code>category</code></td>
-    <td>Required, string</td>
-    <td>This parameter specifies the application package name of the client app that sent the message. </td>
-  </tr>
-  <tr>
-    <td><code>message_id</code></td>
-    <td>Required, string</td>
-    <td>This parameter specifies the unique ID of the message. </td>
-  </tr>
-  <tr>
-    <td><code>data</code></td>
-    <td>Optional, string</td>
-    <td>This parameter specifies the key-value pairs of the message's payload.</td>
-  </tr>
-</table>
-
-<h3 id="upstream-response">Sending an upstream XMPP message response</h3>
-
-<p>The following table describes the response that 3rd-party app server is expected to send to
-<a href="{@docRoot}google/gcm/ccs.html">XMPP (CCS)</a> in response to an
-upstream message it (the app server) received.</p>
-
-<p class="table-caption" id="table9">
-  <strong>Table 9.</strong> Upstream XMPP message response.</p>
-<table border="1">
-  <tr>
-    <th>Parameter</th>
-    <th>Usage</th>
-    <th>Description</th>
-  </tr>
-  <tr>
-    <td><code>to</code></td>
-    <td>Required, string</td>
-    <td><p>This parameter specifies the recipient of a response message. </p>
-    <p>The value must be a registration ID of the client app that sent the upstream message.</p></td>
-  </tr>
-  <tr>
-    <td><code>message_id</code></td>
-    <td>Required, string</td>
-    <td>This parameter specifies which message the response is intended for. The value must be
-the {@code message_id} value from the corresponding upstream message.</td>
-  </tr>
-  <tr>
-    <td><code>message_type</code></td>
-    <td>Required, string</td>
-    <td>This parameter specifies an {@code ack} message from a 3rd-party app server to CCS.</td>
-  </tr>
-</table>
-<h2 id="ccs">Cloud Connection Server Messages (XMPP) </h2>
-<p>This is a message sent from XMPP (CCS) to a 3rd-party app server. Here are the primary types
-of messages that XMPP (CCS) sends to the 3rd-party app server:</p>
-<ul>
-  <li><strong>Delivery Receipt:</strong> If the 3rd-party app server included {@code delivery_receipt_requested}
-in the downstream message, XMPP (CCS) sends a delivery receipt when it receives confirmation
-that the device received the message.</li>
-  <li><strong>Control:</strong> These CCS-generated messages indicate that
-action is required from the 3rd-party app server.</li>
-</ul>
-
-<p>The following table describes the fields included in the messages CCS
-sends to a 3rd-party app server.</p>
-
-<p class="table-caption" id="table10">
-  <strong>Table 10.</strong> GCM Cloud Connection Server messages (XMPP).</p>
-<table border="1">
-  <tr>
-    <th>Parameter</th>
-    <th>Usage</th>
-    <th>Description</th>
-  </tr>
-  <tr>
-    <td colspan="3"><strong>Common Field</strong></td>
-  </tr>
-  <tr>
-    <td><code>message_type</code></td>
-    <td>Required, string</td>
-    <td><p>This parameter specifies the type of the CCS message: either delivery receipt or control.</p>
-      <p>When it is set to {@code receipt}, the message includes {@code from}, {@code message_id},
-        {@code category} and {@code data} fields to provide additional information.</p>
-    <p>When it is set to {@code control}, the message includes {@code control_type} to indicate the
-type of control message.</p></td>
-  </tr>
-  <tr>
-    <td colspan="3"><strong>Delivery receipt-specific</strong></td>
-  </tr>
-  <tr>
-    <td><code>from</code></td>
-    <td>Required, string</td>
-    <td>This parameter is set to {@code gcm.googleapis.com}, indicating that the
-message is sent from CCS.</td>
-  </tr>
-  <tr>
-    <td><code>message_id</code></td>
-    <td>Required, string</td>
-    <td>This parameter specifies the original message ID that the receipt is intended for,
-prefixed with {@code dr2:} to indicate that the message is a delivery receipt. A 3rd-party app
-server must send an {@code ack} message with this message ID to acknowledge that it
-received this delivery receipt. See <a href="#table9">table 9</a> for the 'ack' message format.</td>
-  </tr>
-  <tr>
-    <td><code>category</code></td>
-    <td>Optional, string</td>
-    <td>This parameter specifies the application package name of the client app that
-receives the message that this delivery receipt is reporting. This is available when
-{@code message_type} is {@code receipt}.</td>
-  </tr>
-  <tr>
-    <td><code>data</code></td>
-    <td>Optional, string</td>
-    <td>This parameter specifies the key-value pairs for the delivery receipt message. This is available
-when the {@code message_type} is {@code receipt}.
-      <ul>
-        <li>{@code message_status}: This parameter specifies the status of the receipt message.
-It is set to {@code MESSAGE_SENT_TO_DEVICE} to indicate the device has confirmed its receipt of
-the original message.</li>
-      <li>{@code original_message_id}: This parameter specifies the ID of the original message
-that the 3rd-party app server sent to the client app.</li>
-     <li>{@code device_registration_id}: This parameter specifies the registration ID of the
-client app to which the original message was sent.</li>
-    </ul>
-</td>
-  </tr>
-  <tr>
-    <td colspan="3"><strong>Control-specific</strong></td>
-  </tr>
-  <tr>
-    <td><code>control_type</code></td>
-    <td>Optional, string</td>
-    <td><p>This parameter specifies the type of control message sent from CCS.</p>
-    <p>Currently, only {@code CONNECTION_DRAINING} is supported. XMPP (CCS) sends this control message
-before it closes a connection to perform load balancing. As the connection drains, no more messages
-are allowed to be sent to the connection, but existing messages in the pipeline will
-continue to be processed.</p></td>
-  </tr>
-</table>
-
-<h2 id="error-codes">Downstream message error response codes (HTTP and XMPP)</h2>
-
-<p>The following table lists the error response codes for downstream messages (HTTP and XMPP).</p>
-
-<p class="table-caption" id="table11">
-  <strong>Table 11.</strong> Downstream message error response codes.</p>
-<table border="1">
-  <tr>
-    <th>Error</th>
-    <th>HTTP Code</th>
-    <th>XMPP Code</th>
-    <th>Recommended Action</th>
-  </tr>
-  <tr>
-    <td>Missing Registration ID</td>
-    <td>200 + error:MissingRegistration</td>
-    <td><code>INVALID_JSON</code></td>
-    <td>Check that the request contains a registration ID (either in the
-{@code registration_id} in a plain text message, or in the {@code registration_ids} in JSON).</td>
-  </tr>
-  <tr>
-    <td>Invalid Registration ID</td>
-    <td>200 + error:InvalidRegistration</td>
-    <td><code>BAD_REGISTRATION</code></td>
-    <td>Check the format of the registration ID you pass to the server. Make sure it
-matches the registration ID the client app receives from registering with GCM. Do not
-truncate or add additional characters.</td>
-  </tr>
-  <tr>
-    <td>Unregistered Device</td>
-    <td>200 + error:NotRegistered</td>
-    <td><code>DEVICE_UNREGISTERED</code></td>
-    <td>An existing registration ID may cease to be valid in a number of scenarios, including:<br>
-     <ul>
-      <li>If the client app unregisters with GCM.</li>
-      <li>If the client app is automatically unregistered, which can happen if the user uninstalls the application.</li>
-      <li>If the registration ID expires (for example, Google might decide to refresh registration IDs).</li>
-      <li>If the client app is updated but the new version is not configured to receive messages.</li>
-</ul>
- For all these cases, remove this registration ID from the 3rd-party app
-server and stop using it to send messages.</td>
-  </tr>
-  <tr>
-    <td>Invalid Package Name</td>
-    <td>200 + error:InvalidPackageName</td>
-    <td></td>
-    <td>Make sure the message was addressed to a registration ID whose package name
-matches the value passed in the request.</td>
-  </tr>
-  <tr>
-    <td>Authentication Error</td>
-    <td>401</td>
-    <td>&nbsp;</td>
-    <td>The sender account used to send a message couldn't be authenticated. Possible causes are:<br>
-<ul>
-      <li>Authorization header missing or with invalid syntax in HTTP request.</li>
-      <li>Invalid project number sent as key.</li>
-      <li>Key valid but with GCM service disabled.</li>
-      <li>Request originated from a server not whitelisted in the Server Key IPs.</li>
-</ul>
-    Check that the token you're sending inside the Authentication header is
-the correct API key associated with your project. See
-<a href="{@docRoot}google/gcm/http.html#checkAPIkey">Checking the validity of an API Key
-</a> for details.</td>
-  </tr>
-  <tr>
-    <td>Mismatched Sender</td>
-    <td>200 + error:MismatchSenderId</td>
-    <td><code>BAD_REGISTRATION</code></td>
-    <td>A registration ID is tied to a certain group of senders. When a client app registers
-for GCM, it must specify which senders are allowed to send messages. You should use one
-of those sender IDs when sending messages to the client app. If you switch to a different
-sender, the existing registration IDs won't work.</td>
-  </tr>
-  <tr>
-    <td>Invalid JSON</td>
-    <td>400</td>
-    <td><code>INVALID_JSON</code></td>
-    <td>Check that the JSON message is properly formatted and contains valid fields
-(for instance, making sure the right data type is passed in).</td>
-  </tr>
-  <tr>
-    <td>Message Too Big</td>
-    <td>200 + error:MessageTooBig</td>
-    <td><code>INVALID_JSON</code></td>
-    <td>Check that the total size of the payload data included in a message does
-not exceed 4096 bytes. This includes both the the keys and the values.</td>
-  </tr>
-  <tr>
-    <td>Invalid Data Key</td>
-    <td>200 + error:
-<br />
-InvalidDataKey</td>
-    <td><code>INVALID_JSON</code></td>
-    <td>Check that the payload data does not contain a key (such as {@code from} or any value
-prefixed by {@code google}) that is used internally by GCM. Note that some words (such as {@code collapse_key})
-are also used by GCM but are allowed in the payload, in which case the payload value
-will be overridden by the GCM value.</td>
-  </tr>
-  <tr>
-    <td>Invalid Time to Live</td>
-    <td>200 + error:InvalidTtl</td>
-    <td><code>INVALID_JSON</code></td>
-    <td>Check that the value used in {@code time_to_live} is an integer representing a
-duration in seconds between 0 and 2,419,200 (4 weeks).</td>
-  </tr>
-  <tr>
-    <td>Bad ACK message</td>
-    <td>N/A</td>
-    <td><code>BAD_ACK</code></td>
-    <td>Check that the 'ack' message is properly formatted before retrying. See
-<a href="#table9">table 9</a> for details.</td>
-  </tr>
-  <tr>
-    <td>Timeout</td>
-    <td>5xx or 200 + error:Unavailable</td>
-    <td><code>SERVICE_UNAVAILABLE</code></td>
-    <td><p>The server couldn't process the request in time. Retry the same request, but you must:<br>
-<ul>
-      <li>For HTTP: Honor the {@code Retry-After} header if it is included in the response from the
-GCM Connection Server.</li>
-      <li>Implement exponential back-off in your retry mechanism. (e.g. if you waited one second
-before the first retry, wait at least two second before the next one, then 4 seconds and so on).
-If you're sending multiple messages, delay each one independently by an additional random amount
-to avoid issuing a new request for all messages at the same time.</li>
-    <li>For CCS: The initial retry delay should be set to 1 second.</li>
-</ul>
-    <p>Senders that cause problems risk being blacklisted.</p></td>
-  </tr>
-  <tr>
-    <td>Internal Server Error</td>
-    <td>500 or 200 + error:InternalServerError</td>
-    <td><code>INTERNAL_SERVER_
-<br />
-ERROR</code></td>
-    <td>The server encountered an error while trying to process the request. You could retry
-the same request following the requirements listed in "Timeout" (see row above). If the error persists, please
-report the problem in the {@code android-gcm group}.</td>
-  </tr>
-  <tr>
-    <td>Device Message Rate Exceeded</td>
-    <td>200 + error:
-<br />DeviceMessageRate
-<br />
-Exceeded</td>
-    <td><code>DEVICE_MESSAGE_RATE<br />
-_EXCEEDED</code></td>
-    <td>The rate of messages to a particular device is too high. Reduce the
-number of messages sent to this device and do not immediately retry sending to this device.</td>
-  </tr>
-  <tr>
-    <td>Connection Draining</td>
-    <td>N/A</td>
-    <td><code>CONNECTION_DRAINING</code></td>
-    <td>The message couldn't be processed because the connection is draining. This happens because
-periodically, XMPP (CCS) needs to close down a connection to perform load balancing. Retry the message over
-another XMPP connection.</td>
-  </tr>
-</table>
diff --git a/docs/html/google/gcm/server.jd b/docs/html/google/gcm/server.jd
deleted file mode 100644
index 004fd0e..0000000
--- a/docs/html/google/gcm/server.jd
+++ /dev/null
@@ -1,440 +0,0 @@
-page.title=Implementing GCM Server
-@jd:body
-
-<div id="qv-wrapper">
-<div id="qv">
-
-<h2>In this document</h2>
-
-<ol class="toc">
-  <li><a href="#role">Role of the 3rd-party Application Server</a></li>
-  <li><a href="#choose">Choosing a GCM Connection Server</a></li>
-  <li><a href="#send-msg">Sending Messages</a>
-    <ol class="toc">
-
-      <li><a href="#target">Target</a></li>
-      <li><a href="#payload">Payload</a></li>
-      <li><a href="#params">Message parameters</a>
-    </ol>
-    </li>
-  <li><a href="#adv">Messaging Concepts and Best Practices</a>
-
-   <ol class="toc">
-
-      <li><a href="#collapsible">Send-to-Sync vs. Messages with Payload</a></li>
-      <li><a href="#ttl">Setting an Expiration Date for a Message</a></li>
-      <li><a href="#multi-senders">Receiving Messages from Multiple Senders</a>
-      <li><a href="#lifetime">Lifetime of a Message</a>
-      <li><a href="#throttling">Throttling</a>
-    </ol>
-
-</li>
-  </li>
-
-</ol>
-
-<h2>See Also</h2>
-
-<ol class="toc">
-<li><a href="server-ref.html">Server Reference</a></li>
-<li><a href="gs.html">Getting Started</a></li>
-<li><a href="client.html">Implementing GCM Client</a></li>
-<li><a href="ccs.html">Cloud Connection Server (XMPP)</a></li>
-<li><a href="http.html">HTTP Connection Server</a></li>
-
-
-</ol>
-
-</div>
-</div>
-
-
-<p>The server side of Google Cloud Messaging (GCM) consists of two components:</p>
-<ul>
-<li>Google-provided <strong>GCM Connection Servers</strong>
-take messages from a <a href="{@docRoot}google/gcm/server.html#role">3rd-party app server</a>
-and send them to a GCM-enabled
-application (the &quot;client app&quot;) running on a device. For example,
-Google provides connection servers for <a href="{@docRoot}google/gcm/http.html">
-HTTP</a> and <a href="{@docRoot}google/gcm/ccs.html">XMPP (CCS)</a> (XMPP).</li>
-<li>A <strong>3rd-party application server</strong> that you must implement. This application
-server sends data to a GCM-enabled client app via the chosen GCM connection server.</li>
-</ul>
-</p>
-
-<p>A full GCM implementation requires both a client implementation and a server
-implementation. For more
-information about implementing the client side, see <a href="client.html">
-Implementing GCM Client</a>.</p>
-
-
-<h2 id="role">Role of the 3rd-party Application Server</h2>
-
-<p>Before you can write client apps that use the GCM feature, you must
-have an  application server that meets the following criteria:</p>
-
-<ul>
-  <li>Able to communicate with your client.</li>
-  <li>Able to  fire off properly formatted requests to the GCM server.</li>
-  <li>Able to handle requests and resend them as needed, using
-<a href="http://en.wikipedia.org/wiki/Exponential_backoff">exponential back-off.</a></li>
-  <li>Able to store the API key and client registration IDs. In HTTP, the API key is
-included in the header of POST requests that send messages. In XMPP, the API key is
-used in the SASL PLAIN authentication request as a password to authenticate the connection.</li>
- <li>Able to generate message IDs to uniquely identify each message it sends. Message IDs
-should be unique per sender ID.</li>
-</ul>
-
-<p>Here are the basic steps you follow to implement your 3rd-party app server:</p>
-
-<ul>
-      <li>Decide which GCM connection server(s) you want to use. Note that if you want to use
-      upstream messaging from your client applications, you must use XMPP (CCS). For a more detailed
-      discussion of this, see <a href="#choose">
-      Choosing a GCM Connection Server</a>.</li>
-      <li>Decide how you want to implement your app server. We provide helper libraries and code
-samples to assist you with your 3rd-party app server implementation. For example:
-        <ul>
-          <li>If you decide to use the HTTP connection server, you can use the
-GCM server helper library and demo app to help in implementing your app server.</li>
-          <li>If you decide to use the XMPP connection server, you can use
-the provided Python or Java <a href="http://www.igniterealtime.org/projects/smack/">
-Smack</a> demo apps as a starting point.</li>
-        <li>Note that Google AppEngine does not support connections to XMPP (CCS).</li>
-        </ul>
-      </li>
-    </ul>
-  </li>
-</ul>
-
-
-<h2 id="choose">Choosing a GCM Connection Server</h2>
-
-<p>Currently GCM provides two connection servers: <a href="{@docRoot}google/gcm/http.html">
-HTTP</a> and <a href="{@docRoot}google/gcm/ccs.html">XMPP (CCS)</a>. You can use them
-separately or in tandem. XMPP (CCS) messaging differs from HTTP messaging in the following ways:</p>
-<ul>
-  <li>Upstream/Downstream messages
-    <ul>
-      <li>HTTP: Downstream only, cloud-to-device up to 4KB of data. </li>
-      <li>XMPP (CCS): Upstream and downstream (device-to-cloud, cloud-to-device),
-        up to 4 KB of data. </li>
-    </ul>
-  </li>
-  <li>Messaging (synchronous or asynchronous)
-    <ul>
-      <li>HTTP: Synchronous. 3rd-party app servers send messages as HTTP POST requests and
-wait for a response. This mechanism is synchronous and blocks the sender from sending
-another message until the response is received.</li>
-      <li>XMPP (CCS): Asynchronous. 3rd-party app servers send/receive messages to/from all their
-devices at full line speed over persistent XMPP connections.
-XMPP (CCS) sends acknowledgment or failure notifications (in the
-form of special ACK and NACK JSON-encoded XMPP messages) asynchronously.</li>
-    </ul>
-  </li>
-
-  <li>JSON
-    <ul>
-      <li>HTTP: JSON messages sent as HTTP POST.</li>
-      <li>XMPP (CCS): JSON messages encapsulated in XMPP messages.</li>
-    </ul>
-  </li>
-  <li>Plain Text
-    <ul>
-      <li>HTTP: Plain Text messages sent as HTTP POST.</li>
-      <li>XMPP (CCS): Not supported.</li>
-    </ul>
-  </li>
-  <li>Multicast downstream send to multiple registration IDs.
-    <ul>
-      <li>HTTP: Supported in JSON message format.</li>
-      <li>XMPP (CCS): Not supported.</li>
-    </ul>
-  </li>
-</ul>
-
-
-<h2 id="send-msg">Sending Messages</h2>
-
-<p>This section gives an overview of sending messages. For details of message syntax,
-see <a href="{@docRoot}google/gcm/server-ref.html">Server Reference</a>.</p>
-
-<h3>Overview</h3>
-
-<p>Here is the general sequence of events that occurs when a 3rd-party application
-server sends a message (the details vary depending on the platform):</p>
-<ol>
-  <li>The 3rd-party app server sends a message to GCM servers.</li>
-  <li>The GCM connection server enqueues and stores the message if the device is offline.</li>
-  <li>When the device is online, GCM connection server sends the message to the device.</li>
-  <li>The client app processes the message. </li>
-</ol>
-
-<h3>Implement send request</h3>
-
-<p>The following sections describe the basic components involved in
-sending a request. See the <a href="{@docRoot}google/gcm/server-ref.html">Server Reference</a>
-for details.</p>
-
-<h4 id="target">Target</h4>
-<p>Required. When your app server sends a message in GCM, it must specify a target.</p>
-<p>For HTTP you must specify the target as one of the following:</p>
-<ul>
-<li><code>registration_ids</code>: For sending to 1 or more devices (up to 1000).
-When you send a message to multiple registration IDs, that is called a multicast message.</li>
-<li><code>notification_key</code>: For sending to multiple devices owned by a single user.</li>
-</ul>
-<p>For CCS (XMPP) you must specify the target as:</p>
-<ul>
-<li>{@code to}: This
-field may contain a single registration ID or a notification key.
-XMPP (CCS) does not support multicast messaging.</li>
-</ul>
-
-<h4 id="options">Options</h4>
-
-<p>There are various options the 3rd-party app server can set when sending a downstream
-message to a client app. See the <a href="{@docRoot}google/gcm/server-ref.html#table1">
-Server Reference</a> for details. Here are a few examples of possible options:</p>
-
-<ul>
-  <li>{@code collapse_key}: whether a message should be "send-to-sync" or a "message with
-payload".</li>
-  <li>{@code time_to_live}: setting an expiration date for a message.</li>
-  <li>{@code dry_run}: Test your server.
-<p>If you want to test your request (either JSON or plain text) without delivering
-the message to the devices, you can set an optional HTTP parameter called
-<code>dry_run</code> with the value <code>true</code>. The result will be almost
-identical to running the request without this parameter, except that the message
-will not be delivered to the devices. Consequently, the response will contain fake
-IDs for the message and multicast parameters.</p>
-</li>
-</ul>
-
-<h4 id="payload">Payload</h4>
-<p>Optional. If you are including a payload in the message, you use the <code>data</code>
-parameter to include the payload. This applies for both HTTP and XMPP.</p>
-
-<p>See the <a href="{@docRoot}google/gcm/server-ref.html">Server Reference</a> for details on sending
-and receiving messages.</p>
-
-<h2 id="adv">Messaging Concepts and Best Practices</h2>
-
-<p>This section has a discussion of general messaging topics.</p>
-
-<h3 id="collapsible">Send-to-Sync  vs. Messages with Payload</h3>
-
-<p>Every message sent in GCM has the following characteristics:</p>
-<ul>
-  <li>It has a payload limit of 4096 bytes.</li>
-  <li>By default, it is stored by GCM for 4 weeks.</li>
-</ul>
-
-<p>But despite these similarities, messages can behave very differently depending
-on their particular settings. One major distinction between messages is whether
-they are collapsed (where each new message replaces the preceding message) or not
-collapsed (where each individual message is delivered). Every message sent in GCM
-is either a &quot;send-to-sync&quot; (collapsible) message or a &quot;message with
-payload&quot; (non-collapsible message).</p>
-
-<h4 id="s2s">Send-to-sync messages</h4>
-
-<p>A send-to-sync (collapsible) message is often a &quot;tickle&quot; that tells
-a mobile application to sync data from the server. For example, suppose you have
-an email application. When a user receives new email on the server, the server
-pings the mobile application with a &quot;New mail&quot; message. This tells the
-application to sync to the server to pick up the new email. The server might send
-this message multiple times as new mail continues to accumulate, before the application
-has had a chance to sync. But if the user has received 25 new emails, there's no
-need to preserve every &quot;New mail&quot; message. One is sufficient. Another
-example would be a sports application that updates users with the latest score.
-Only the most recent message is relevant. </p>
-
-<p>GCM allows a maximum of 4 different collapse keys to be used by the GCM server
-at any given time. In other words, the GCM server can simultaneously store 4
-different send-to-sync messages per device, each with a different collapse key.
-For example, Device A can have A1, A2, A3, and A4. Device B can have B1, B2, B3,
-and B4, and so on. If you exceed this number GCM will only keep 4 collapse keys, with no
-guarantees about which ones they will be.</p>
-
-<h3 id="payload">Messages with payload</h3>
-
-<p>Unlike a send-to-sync message, every &quot;message with payload&quot;
-(non-collapsible message) is delivered. The payload the message contains can be
-up to 4kb. For example, here is a JSON-formatted message in an IM application in
-which spectators are discussing a sporting event:</p>
-
-<pre class="prettyprint pretty-json">{
-  "registration_id" : "APA91bHun4MxP5egoKMwt2KZFBaFUH-1RYqx...",
-  "data" : {
-    "Nick" : "Mario",
-    "Text" : "great match!",
-    "Room" : "PortugalVSDenmark",
-  },
-}</pre>
-
-<p>A &quot;message with payload&quot; is not simply a &quot;ping&quot; to the
-mobile application to contact the server to fetch data. In the aforementioned IM
-application, for example, you would want to deliver every message, because every
-message has different content. To specify a non-collapsible message, you simply
-omit the <code>collapse_key</code> parameter. Thus GCM will send each message
-individually. Note that the order of delivery is not guaranteed.</p>
-
-<p>GCM will store up to 100 non-collapsible messages. After that, all messages
-are discarded from GCM, and a new message is created that tells the client how
-far behind it is.</p>
-
-<p>The application should respond by syncing with the server to recover the
-discarded messages. </p>
-
-<h4 id="which">Which should I use?</h4>
-  <p>If your application does not need to use non-collapsible messages, collapsible
-messages are a better choice from a performance standpoint. However, if you use
-collapsible messages, remember that <strong>GCM only allows a maximum of 4 different collapse
-keys to be used by the GCM server per registration ID at any given time</strong>. You must
-not exceed this number, or it could cause unpredictable consequences.</p>
-
-<h3 id="ttl">Setting an Expiration Date for a Message</h3>
-<p>You can use the <code>time_to_live</code> parameter in the send request
-to specify the maximum lifespan of a message.
-The value of this parameter must be a duration from 0 to 2,419,200 seconds, and
-it corresponds to the maximum period of time for which GCM will store and try to
-deliver the message. Requests that don't contain this field default to the maximum
-period of 4 weeks.</p>
-<p>Here are some possible uses for this feature:</p>
-<ul>
-  <li>Video chat incoming calls</li>
-  <li>Expiring invitation events</li>
-  <li>Calendar events</li>
-</ul>
-<h4 id="bg">Background </h4>
-<p>GCM usually delivers messages immediately after they are sent. However,
-this might not always be possible. For example, if the platform is Android,
-the device could be turned off, offline, or otherwise unavailable.
-Or the sender itself might request
-that messages not be delivered until the device becomes active by using the
-<code>delay_while_idle</code> flag. Finally, GCM might intentionally delay messages
-to prevent an application from consuming excessive resources and negatively
-impacting battery life.</p>
-
-<p>When this happens, GCM will store the message and deliver it as soon as it's
-feasible. While this is fine in most cases, there are some applications for which
-a late message might as well never be delivered. For example, if the message is
-an incoming call or video chat notification, it will only be meaningful for a
-small period of time before the call is terminated. Or if the message is an
-invitation to an event, it will be useless if received after the event has ended.</p>
-
-<p>Another advantage of specifying the expiration date for a message is that GCM
-will never throttle messages with a <code>time_to_live</code> value of 0 seconds.
-In other words, GCM will guarantee best effort for messages that must be delivered
-&quot;now or never.&quot; Keep in mind that a <code>time_to_live</code> value of
-0 means messages that can't be delivered immediately will be discarded. However,
-because such messages are never stored, this provides the best latency for
-sending notifications.</p>
-
-<p>Here is an example of a JSON-formatted request that includes TTL:</p>
-<pre class="prettyprint pretty-json">
-{
-  "collapse_key" : "demo",
-  "delay_while_idle" : true,
-  "registration_ids" : ["xyz"],
-  "data" : {
-    "key1" : "value1",
-    "key2" : "value2",
-  },
-  "time_to_live" : 3
-},
-</pre>
-
-
-<h3 id="multi-senders">Receiving Messages from Multiple Senders</h3>
-
-<p>GCM allows multiple parties to send messages to the same application. For
-example, suppose your application is an articles aggregator with multiple
-contributors, and you want each of them to be able to send a message when they
-publish a new article. This message might contain a URL so that the application
-can download the article. Instead of having to centralize all sending activity in
-one location, GCM gives you the ability to let each of these contributors send
-its own messages.</p>
-
-<p>To make this possible, all you need to do is have each sender generate its own
-project number. Then include those IDs in the sender field, separated by commas,
-when requesting a registration. Finally, share the registration ID with your
-partners, and they'll be able to send messages to your application using their
-own authentication keys.</p>
-
-<p>Note that there is limit of 100 multiple senders.</p>
-
-<h3 id="lifetime">Lifetime of a Message</h3>
-
-<p>When a 3rd-party server posts a message to GCM and receives a message ID back,
-it does not mean that the message was already delivered to the device. Rather, it
-means that it was accepted for delivery. What happens to the message after it is
-accepted depends on many factors.</p>
-
-<p>In the best-case scenario, if the device is connected to GCM, the screen is on,
-and there are no throttling restrictions (see <a href="#throttling">Throttling</a>),
-the message will be delivered right away.</p>
-
-<p>If the device is connected but idle, the message will still be
-delivered right away unless the <code>delay_while_idle</code> flag is set to true.
-Otherwise, it will be stored in the GCM servers until the device is awake. And
-that's where the <code>collapse_key</code> flag plays a role: if there is already
-a message with the same collapse key (and registration ID) stored and waiting for
-delivery, the old message will be discarded and the new message will take its place
-(that is, the old message will be collapsed by the new one). However, if the collapse
-key is not set, both the new and old messages are stored for future delivery.
-Collapsible messages are also called <a href="#s2s">send-to-sync messages</a>.</p>
-
-<p class="note"><strong>Note:</strong> There is a limit on how many messages can
-be stored without collapsing. That limit is currently 100. If the limit is reached,
-all stored messages are discarded. Then when the device is back online, it receives
-a special message indicating that the limit was reached. The application can then
-handle the situation properly, typically by requesting a full sync.
-<br><br>
-Likewise, there is a limit on how many <code>collapse_key</code>s you can have for
-a particular device. GCM allows a maximum of 4 different collapse keys to be used
-by the GCM server per device
-any given time. In other words, the GCM server can simultaneously store 4 different
-send-to-sync messages, each with a different collapse key. If you exceed this number
-GCM will only keep 4 collapse keys, with no guarantees about which ones they will be.
-See <a href="#s2s">Send-to-sync messages</a> for more information.
-</p>
-
-<p>If the device is not connected to GCM, the message will be stored until a
-connection is established (again respecting the collapse key rules). When a connection
-is established, GCM will deliver all pending messages to the device, regardless of
-the <code>delay_while_idle</code> flag. If the device never gets connected again
-(for instance, if it was factory reset), the message will eventually time out and
-be discarded from GCM storage. The default timeout is 4 weeks, unless the
-<code>time_to_live</code> flag is set.</p>
-
-<p>Finally, when GCM attempts to deliver a message to the device and the
-application was uninstalled, GCM will discard that message right away and
-invalidate the registration ID. Future attempts to send a message to that device
-will get a <code>NotRegistered</code> error. See <a href="#unreg">
-How Unregistration Works</a> for more information.</p>
-<p>Although is not possible to track the status of each individual message, the
-Google Cloud Console stats are broken down by messages sent to device, messages
-collapsed, and messages waiting for delivery.</p>
-
-<h3 id="throttling">Throttling</h3>
-<p>To prevent abuse (such as sending a flood of messages to a device) and
-to optimize for the overall network efficiency and battery life of
-devices, GCM implements throttling of messages using a token bucket
-scheme. Messages are throttled on a per application and per <a href="#collapsible">collapse
-key</a> basis (including non-collapsible messages). Each application
-collapse key is granted some initial tokens, and new tokens are granted
-periodically therefter. Each token is valid for a single message sent to
-the device. If an application collapse key exhausts its supply of
-available tokens, new messages are buffered in a pending queue until
-new tokens become available at the time of the periodic grant. Thus
-throttling in between periodic grant intervals may add to the latency
-of message delivery for an application collapse key that sends a large
-number of messages within a short period of time. Messages in the pending
-queue of an application collapse key may be delivered before the time
-of the next periodic grant, if they are piggybacked with messages
-belonging to a non-throttled category by GCM for network and battery
-efficiency reasons.</p>
-
-
diff --git a/docs/html/google/gcs/gcs-signup.jd b/docs/html/google/gcs/gcs-signup.jd
deleted file mode 100644
index 7334cec..0000000
--- a/docs/html/google/gcs/gcs-signup.jd
+++ /dev/null
@@ -1,10 +0,0 @@
-page.title=Sign Up for Google Cloud Save
-
-@jd:body
-
-<p>Sign up to be a trial partner for Google Cloud Save.</p>
-
-
-<iframe src="https://docs.google.com/a/google.com/forms/d/1_V67YIXzLDLb-UzxOOpSjUDuJFfeYg3hEUT0oliK2ck/viewform?embedded=true" width="100%" height="930" frameborder="0" marginheight="0" marginwidth="0" id="signupform">Loading...</iframe>
-</body>
-</html>
diff --git a/docs/html/google/gcs/index.jd b/docs/html/google/gcs/index.jd
deleted file mode 100644
index e5f4776..0000000
--- a/docs/html/google/gcs/index.jd
+++ /dev/null
@@ -1,30 +0,0 @@
-page.title=Google Cloud Save
-page.tags="gcs"
-header.hide=1
-@jd:body
-
-
-<div class="landing-banner">
-
-<div class="col-5" style="min-height:100px">
-  <img src="{@docRoot}images/google/gcs.png" />
-</div>
-<div class="col-7">
-
-  <h1 itemprop="name" style="margin-bottom:0;">Google Cloud Save</h1>
-  <p itemprop="description">
-  Google Cloud Save is a service that enables per-user data storage
-and sync in your apps with no backend programming required. Google Cloud Save
-stores its data
-in <a href="http://developers.google.com/datastore/">Google Cloud Datastore</a>,
- a fully managed, schemaless database for storing non-relational data. Cloud
-Datastore automatically scales with your users.
-Google Cloud Save works even when your device is offline, and it
-provides an easy transition to server-side coding because
-the same database is accessible via App Engine and Compute Engine.
-Finally, Google Cloud Save provides a generous initial per-user free quota that
-expands as your user base grows.
-</p>
-<a href="{@docRoot}google/gcs/gcs-signup.html" class="button">Sign Up</a>
-</div>
-</div>
diff --git a/docs/html/google/google_toc.cs b/docs/html/google/google_toc.cs
index 510a755..dd0e735 100644
--- a/docs/html/google/google_toc.cs
+++ b/docs/html/google/google_toc.cs
@@ -1,115 +1,6 @@
-<?cs #########################################################
-     ########                                  ###############
-     ########            ATTENTION             ###############
-     ########                                  ###############
-     #########################################################
-
-     IF YOU MAKE CHANGES TO THIS FILE, YOU MUST GENERATE THE
-     GMS REFERENCE DOCS, BECAUSE THEY ARE NOT INCLUDED IN THE
-     DOCS BUILD RULE.
-
-     #########################################################
-     #########################################################
-?>
-
 <ul id="nav">
 
   <li class="nav-section">
-    <div class="nav-section-header empty"><a href="<?cs var:toroot?>google/index.html">
-          <span class="en">Overview</span>
-      </a></div>
-  </li>
-
-  <li class="nav-section">
-    <div class="nav-section-header empty"><a href="<?cs var:toroot?>google/play-services/games.html">
-          <span class="en">Games</span>
-      </a></div>
-  </li>
-  <li class="nav-section">
-    <div class="nav-section-header empty"><a href="<?cs var:toroot?>google/play-services/location.html">
-          <span class="en">Location</span>
-      </a></div>
-  </li>
-  <li class="nav-section">
-    <div class="nav-section-header empty"><a href="<?cs var:toroot?>google/play-services/plus.html">
-          <span class="en">Google+</span>
-                </a></div>
-  </li>
-  <li class="nav-section">
-    <div class="nav-section-header empty"><a href="<?cs var:toroot?>google/play-services/maps.html">
-          <span class="en">Maps</span>
-      </a></div>
-  </li>
-  <li class="nav-section">
-    <div class="nav-section-header empty"><a href="<?cs var:toroot?>google/play-services/drive.html">
-          <span class="en">Drive</span>
-      </a></div>
-  </li>
-  <li class="nav-section">
-    <div class="nav-section-header empty"><a href="<?cs var:toroot?>google/play-services/cast.html">
-          <span class="en">Cast</span>
-      </a></div>
-  </li>
-  <li class="nav-section">
-    <div class="nav-section-header"><a href="<?cs var:toroot ?>google/play-services/ads.html">
-      <span class="en">Ads</span></a>
-    </div>
-    <ul>
-      <li><a href="<?cs var:toroot?>google/play-services/id.html">
-          <span class="en">Advertising ID</span></a>
-      </li>
-    </ul>
-  </li>
-  <li class="nav-section">
-    <div class="nav-section-header empty"><a href="<?cs var:toroot?>google/play-services/wallet.html">
-          <span class="en">Wallet</span>
-      </a></div>
-  </li>
-  <li class="nav-section">
-    <div class="nav-section-header"><a href="<?cs var:toroot?>google/play/safetynet/index.html">
-          <span class="en">SafetyNet</span>
-      </a></div>
-      <ul>
-        <li>
-          <a href="<?cs var:toroot ?>google/play/safetynet/start.html">
-            <span class="en">Getting Started</span>
-          </a>
-        </li>
-      </ul>
-  </li>
-
-  <li class="nav-section">
-    <div class="nav-section-header"><a href="<?cs var:toroot ?>google/play-services/index.html">
-      <span class="en">Google Play Services</span></a>
-    </div>
-    <ul>
-      <li><a href="<?cs var:toroot?>google/play-services/setup.html">
-          <span class="en">Setting Up Google Play Services</span></a>
-      </li>
-      <li class="nav-section">
-        <div class="nav-section-header"><a href="<?cs var:toroot?>google/auth/api-client.html">
-          <span class="en">Accessing Google APIs</span></a>
-        </div>
-        <ul>
-          <li>
-            <a href="<?cs var:toroot ?>google/auth/http-auth.html">
-              <span class="en">Authorizing with Google for REST APIs</span>
-            </a>
-          </li>
-        </ul>
-      </li>
-      <li id="gms-tree-list" class="nav-section">
-        <div class="nav-section-header">
-          <a href="<?cs var:toroot ?>reference/gms-packages.html">
-            <span class="en">Reference</span>
-          </a>
-        <div>
-      </li>
-    </ul>
-  </li>
-
-
-  <li class="nav-section">
     <div class="nav-section-header"><a href="<?cs var:toroot ?>google/play/billing/index.html" zh-cn-lang="应用内结算">
       <span class="en">Google Play In-app Billing</span></a>
     </div>
@@ -155,67 +46,31 @@
     </ul>
   </li>
 
-
-
-   <li class="nav-section">
-      <div class="nav-section-header"><a href="<?cs var:toroot ?>google/gcm/index.html">
-        <span class="en">Google Cloud Messaging</span></a>
-      </div>
-      <ul>
-        <li><a href="<?cs var:toroot?>google/gcm/gcm.html">
-            <span class="en">Overview</span></a>
-        </li>
-        <li><a href="<?cs var:toroot?>google/gcm/gs.html">
-            <span class="en">Getting Started</span></a>
-        </li>
-        <li><a href="<?cs var:toroot?>google/gcm/client.html">
-            <span class="en">Implementing GCM Client</span></a>
-        </li>
-        <li class="nav-section"><div class="nav-section-header"><a href="<?cs var:toroot?>google/gcm/server.html">
-              <span class="en">Implementing GCM Server</span></a></div>
-              <ul>
-              <li><a href="<?cs var:toroot?>google/gcm/ccs.html">
-              <span class="en">CCS (XMPP)</span></a></li>
-              <li><a href="<?cs var:toroot?>google/gcm/http.html">
-              <span class="en">HTTP</span></a></li>
-              </ul>
-        </li>
-        <li><a href="<?cs var:toroot?>google/gcm/server-ref.html">
-            <span class="en">Server Reference</span></a>
-        </li>
-        <li><a href="<?cs var:toroot?>google/gcm/notifications.html">
-              <span class="en">User Notifications</span></a>
-        </li>
-        <li><a href="<?cs var:toroot?>google/gcm/c2dm.html">
-            <span class="en">Migration</span></a>
-        </li>
-      </ul>
-  </li>
-
   <li class="nav-section">
-  <div class="nav-section-header empty"><a href="<?cs var:toroot ?>google/gcs/index.html">
-        <span class="en">Google Cloud Save</span></a>
-      </div>
-  </li>
-
-  <li class="nav-section">
-    <div class="nav-section-header"><a href="<?cs var:toroot ?>google/play/dist.html">
-      <span class="en">Google Play Distribution</span></a>
-    </div>
-    <ul>
-      <li><a href="<?cs var:toroot ?>google/play/filters.html">
+  <div class="nav-section-header empty"><a href="<?cs var:toroot ?>google/play/filters.html">
           <span class="en">Filters on Google Play</span></a>
-      </li>
-      <li><a href="<?cs var:toroot?>google/play/billing/gp-purchase-status-api.html">
+      </div>
+  </li>
+
+  <li class="nav-section">
+  <div class="nav-section-header empty"><a href="<?cs var:toroot?>google/play/developer-api.html">
               <span class="en">Google Play Developer API</span></a>
-      </li>
-      <li><a href="<?cs var:toroot ?>google/play/publishing/multiple-apks.html">
+      </div>
+  </li>
+    <li class="nav-section">
+  <div class="nav-section-header empty"><a href="<?cs var:toroot ?>google/play/publishing/multiple-apks.html">
           <span class="en">Multiple APK Support</span></a>
-      </li>
-      <li><a href="<?cs var:toroot ?>google/play/expansion-files.html">
+      </div>
+  </li>
+    <li class="nav-section">
+  <div class="nav-section-header empty"><a href="<?cs var:toroot ?>google/play/expansion-files.html">
           <span class="en">APK Expansion Files</span></a>
-      </li>
-      <li class="nav-section">
+      </div>
+  </li>
+
+
+  <li class="nav-section">
+
         <div class="nav-section-header"><a href="<?cs var:toroot ?>google/play/licensing/index.html">
           <span class="en">Application Licensing</span></a>
         </div>
diff --git a/docs/html/google/index.jd b/docs/html/google/index.jd
index 4778a85..e7a5167 100644
--- a/docs/html/google/index.jd
+++ b/docs/html/google/index.jd
@@ -1,164 +1,191 @@
+fullpage=true
 page.title=Google Services
+section.landing=true
+meta.tags="google, play, services, maps, location, gcm, messaging, places"
 header.hide=1
+footer.hide=1
 @jd:body
 
-<style>
-div.landing-cell,
-div.cell-icon {
-  height:150px;
-}
-div.cell-icon {
-  float:left;
-  margin-right:20px;
-}
-div.cell-icon img {
-  margin:0;
-}
-</style>
 
-<div class="landing-banner">
-        
-<div class="col-6" style="min-height:0">
-  <img src="{@docRoot}images/google/google-services.png" alt="" width="340" height="193" />
-</div>
-<div class="col-6">
+<section class="dac-expand dac-hero dac-light">
+  <div class="wrap">
+    <div class="cols dac-hero-content">
+      <div class="col-1of2 col-push-1of2 dac-hero-figure">
+        <img class="dac-hero-image" src="/design/media/hero-material-design.png">
+      </div>
+      <div class="col-1of2 col-pull-1of2">
+        <h1 class="dac-hero-title">Build better apps with Google</h1>
+        <p class="dac-hero-description">
+          Take advantage of the latest Google technologies through a single set of APIs, delivered
+          across Android devices worldwide as part of Google Play services. </p>
+          <p class="dac-hero-description">Start by setting up the Google Play services library,
+          then build with the APIs you need. </p>
 
-  <h1 itemprop="name" style="margin-bottom:0;">Google Services</h1>
-  <p itemprop="description">Google offers a variety of services that help you
-build new revenue streams, manage app distribution,
-track app usage, and enhance your app with features such as maps, sign-in, and
-cloud messaging.</p>
-  <p>Although these Google services are not included in the Android platform, they are
-  supported by most Android-powered devices. When using these services, you can
-  distribute your app on Google Play to all devices running Android 2.3
-  or higher, and some services support even more devices.</p>
-</div>
-</div>
-<div>&nbsp;</div>
-
-
-
-
-
-<div style="margin-top:10px">
-<div class="col-6 normal-links" style="margin-left:0">
-
-<div class="landing-cell">
-  <div class="cell-icon">
-  <img src="{@docRoot}images/google/maps-pin.png" width="40" >
+        <a class="dac-hero-cta" href="https://developers.google.com/android/guides/">
+          <span class="dac-sprite dac-auto-chevron"></span>
+          Set up Google Play services
+        </a><br>
+        <a class="dac-hero-cta" href="https://developers.google.com/android/reference/">
+          <span class="dac-sprite dac-auto-chevron"></span>
+          API Reference
+        </a><br>
+      </div>
+    </div>
   </div>
-    <h4><a href="{@docRoot}google/play-services/maps.html"
-    >Google Maps</a></h4>
-    <p>Include the power of Google Maps in your app
+</section>
+<div class="wrap dac-offset-parent">
+  <a class="dac-fab dac-scroll-button" data-scroll-button href="#latest">
+    <i class="dac-sprite dac-arrow-down-gray"></i>
+  </a>
+</div>
+
+<section class="dac-section dac-gray dac-small dac-invert" id="latest"><div class="wrap">
+  <h2 class="norule">Latest</h2>
+  <div class="resource-widget resource-flow-layout col-16"
+       data-query="type:blog+tag:googleservices+tag:featured+tag:develop"
+       data-cardSizes="6x6"
+       data-maxResults="3"></div>
+  </div>
+</section>
+
+<section class="dac-section dac-light"><div class="wrap">
+  <h1 class="dac-section-title">Google APIs and services</h1>
+  <div class="dac-section-subtitle">
+    Add the latest Google-powered features to enrich your app,
+          grow your user base, and monetize. 
+  </div>
+  <div class="resource-widget resource-flow-layout col-16"
+       data-query="collection:google/landing/services"
+       data-cardSizes="6x6"
+       data-maxResults="6"></div>
+  <ul class="dac-section-links">
+    <li class="dac-section-link"><a href="https://developers.google.com/android/">
+      <span class="dac-sprite dac-auto-chevron"></span>
+      More Google services for Android
+    </a></li>
+  </ul>
+  </div>
+</section>
+
+<section class="dac-section dac-gray dac-small dac-invert" id="videos"><div class="wrap">
+  <h2 class="norule">Videos</h2>
+  <div class="resource-widget resource-flow-layout col-16"
+       data-query="collection:google/landing/videos"
+       data-cardSizes="6x6"
+       data-maxResults="3"></div>
+  </div>
+</section>
+
+<section class="dac-section dac-invert dac-darken-bg" style="background-image: url(/images/distribute/google-play-bg.jpg)"><div class="wrap">
+  <h1 class="dac-section-title">Google Play developer tools</h1>
+  <div class="dac-section-subtitle">
+    Scale your publishing, manage your catalog, and build revenue using Google Play developer tools. 
+  </div>
+  <div class="resource-widget resource-flow-layout col-16"
+       data-query="collection:google/landing/googleplay"
+       data-cardSizes="6x3"
+       data-maxResults="6"></div>
+
+  <ul class="dac-section-links">
+    <li class="dac-section-link"><a href="/google/play/filters.html">
+      <span class="dac-sprite dac-auto-chevron"></span>
+      Device filtering
+    </a></li>
+    <li class="dac-section-link"><a href="/google/play/filters.html">
+      <span class="dac-sprite dac-auto-chevron"></span>
+      Multiple APK support
+    </a></li>
+    <li class="dac-section-link"><a href="/google/play/expansion-files.html">
+      <span class="dac-sprite dac-auto-chevron"></span>
+      APK expansion files
+    </a></li>
+    <li class="dac-section-link"><a href="/google/play/licensing/index.html">
+      <span class="dac-sprite dac-auto-chevron"></span>
+      Licensing library
+    </a></li>
+  </ul>
+</div></section>
+
+<!--
+
+<section class="dac-section dac-light"><div class="wrap">
+  <h1 class="dac-section-title">More</h1>
+  <div class="dac-section-subtitle">
+    Design around Android's capabilities and conventions to give users the best experience.
+  </div>
+  <div class="resource-widget resource-flow-layout col-16"
+       data-query="collection:google/landing/more"
+       data-cardSizes="6x6"
+       data-maxResults="6"></div>
+</div></section>
+
+
+
+
+Google Play services
+video video
+
+
+Google Play Publishing Tools
+
+
+
+Distribute your app on Google Play to all devices running Android 2.3
+  or higher, and some services support even more devices.</p>
+
+
+Google Maps
+
+Include the power of Google Maps in your app
     with an embeddable map view. You can customize the map with
     markers and overlays, control the user's perspective, draw lines
-    and shapes, and much more.</p>
-</div>
+    and shapes, and much more.
 
-<div class="landing-cell">
-  <div class="cell-icon">
-  <img src="{@docRoot}images/google/plus-logo.png" width="40" >
-  </div>
-    <h4><a href="{@docRoot}google/play-services/plus.html"
-    >Google+</a></h4>
-    <p>Allow users to sign in with their Google account,
+Google+</a></h4>
+
+Allow users to sign in with their Google account,
     customize the user experience with Google+ info,
     pull people into your app with interactive posts,
     and add +1 buttons so users can recommend your content.</p>
-</div>
 
-<div class="landing-cell">
-  <div class="cell-icon">
-  <img src="{@docRoot}images/google/cloud-platform.png" width="40" >
-  </div>
-    <h4><a class="external-link" href="https://cloud.google.com/solutions/mobile"
-    >Google Cloud Platform</a></h4>
-    <p>Build and host the backend for your Android app at Google-scale. With an infrastructure
+
+Google Cloud Platform
+
+Build and host the backend for your Android app at Google-scale. With an infrastructure
     that is managed automatically, you can focus on your app. Then, scale to support
-    millions of users.</p>
-</div>
-
-<div class="landing-cell">
-  <div class="cell-icon">
-  <img src="{@docRoot}images/google/gcm-cloud.png" width="40" >
-  </div>
-    <h4><a href="{@docRoot}google/gcm/index.html"
-    >Google Cloud Messaging</a></h4>
-    <p>Immediately notify your users about timely events by delivering
-    lightweight messages from your web server. There are no quotas or charges
-    to use Google Cloud Messaging.</p>
-</div>
-
-<div class="landing-cell">
-  <div class="cell-icon">
-  <img src="{@docRoot}images/google/gcs-small.png" width="40" >
-  </div>
-    <h4><a href="{@docRoot}google/gcs/index.html"
-    >Google Cloud Save</a></h4>
-    <p>Enable per-user data storage and sync in your apps with no backend programming
-    required.</p>
-</div>
-
-</div><!-- col-6 -->
+    millions of users.
 
 
 
 
-<div class="col-6" style="margin-right:0">
 
-<div class="landing-cell">
-  <div class="cell-icon">
-    <img src="{@docRoot}images/google/iab-99c.png" width="40" />
-  </div>
-    <h4><a href="{@docRoot}google/play/billing/index.html"
-    >Google Play In-App Billing</a></h4>
-    <p>Build an app with a steady revenue stream that keeps users engaged
+More
+
+Google Play In-App Billing
+
+Build an app with a steady revenue stream that keeps users engaged
     by offering new content or virtual goods directly in your app. All transactions are handled
     by Google Play Store for a simple user experience.
-    </p>
-</div>
 
-<div class="landing-cell">
-  <div class="cell-icon">
-    <img src="{@docRoot}images/google/wallet.png" width="40" />
-  </div>
-    <h4><a href="{@docRoot}google/play-services/wallet.html"
-    >Google Wallet Instant Buy</a></h4>
-    <p>Provide fast and easy checkout in your app when selling physical goods and services.
+
+Android Pay
+
+Provide fast and easy checkout in your app when selling physical goods and services.
     Increase conversions by streamlining your purchase flow and reducing the amount of
     information your customers need to enter.
-    </p>
-</div>
 
-<div class="landing-cell">
-  <div class="cell-icon">
-<img src="{@docRoot}images/google/analytics.png" width="40" />
-  </div>
-    <h4><a class="external-link" 
-href="https://developers.google.com/analytics/devguides/collection/android/v4/"
-  >Google Analytics</a></h4>
+Google Analytics
 
-<p>Measure your success and gain insights into how users engage with your app content
+Measure your success and gain insights into how users engage with your app content
 by integrating Google Analytics. You can track in-app purchases, the number of active users,
 interaction patterns, and much more.
-</p>
-</div>
 
-<div class="landing-cell">
-  <div class="cell-icon">
-    <img src="{@docRoot}images/google/google-mobile-ads.png" width="40" />
-  </div>
-    <h4><a href="{@docRoot}google/play-services/ads.html"
-    >Google Mobile Ads</a></h4>
-    <p>Display ads from Google Mobile Ads offer you an alternative revenue opportunity that leverages
+
+Google Mobile Ads
+
+Display ads from Google Mobile Ads offer you an alternative revenue opportunity that leverages
     multiple ad networks with targeted ads and several display formats.
-    </p>
-</div>
-  
-</div><!-- col-6 -->
-
-</div><!-- margin wrapper -->
 
 
 
-
+-->
\ No newline at end of file
diff --git a/docs/html/google/play-services/ads.jd b/docs/html/google/play-services/ads.jd
deleted file mode 100644
index 2f915f3..0000000
--- a/docs/html/google/play-services/ads.jd
+++ /dev/null
@@ -1,110 +0,0 @@
-page.title=Google Mobile Ads
-page.tags=Ads,monetization,AdMob,Google Play services
-header.hide=1
-
-@jd:body
-
-
-<div class="landing-banner">
-        
-<div class="col-6">
-  <img src="{@docRoot}images/google/gps-ads.png" alt="">
-</div>
-<div class="col-6">
-
-<h1 itemprop="name" style="margin-bottom:0;">Google Mobile Ads</h1>
-<p itemprop="description">
-  Monetize your app with banner or interstitial ads from
-  Google's vast pool of advertisers. Integrate with top ad networks through
-  mediation to maximize your revenue from impressions. Take advantage of new
-  ad features and capabilities through Google Play services, without having to
-  add or update a library in your APK.
-</p>
-
-<p>
-  Check out the  <a href=
-  "{@docRoot}reference/gms-packages.html">Google Mobile Ads API reference</a> and visit <a class=
-  "external-link" href=
-  "http://developers.google.com/mobile-ads-sdk">developers.google.com/mobile-ads-sdk</a>
-  for more information about integrating Google Mobile Ads into your app.
-</p>
-</div>
-</div>
-
-<div style=
-"background-color:#fffdeb;width:100%;margin-bottom:1em;padding:.5em;" class=
-"caution">
-  <p><strong>Upgrade to the new AdMob</strong></p>
-  <p>Legacy AdMob will be shutting down on August 31, 2014. Beginning August 31,
-    you will no longer be able to use legacy AdMob to promote and monetize your
-    apps. Specifically, please be aware of the following:</p>
-  <ol style="margin-bottom:0;">
-    <li>Ads will stop serving to legacy ad units that are not updated with new
-    ad unit IDs.</li>
-    <li>Legacy house ad campaigns will stop serving.</li>
-    <li>You will not be able to access the legacy AdMob UI after August 31,
-    2014.</li>
-  </ol>
-  <p>If you are still using legacy AdMob, please upgrade your account to the new
-    AdMob as soon as possible. Upgrading takes only 5 minutes. <a href=
-    "https://apps.admob.com/admob/signup?">Start here</a>.</p>
-</div>
-
-<div class="landing-docs">
-  <div class="col-6 normal-links">
-    <h3 style="clear:left">Key Developer Features</h3>
-
-      <h4>Seamless auto-updates</h4>
-      <p>The Google Mobile Ads SDK is part of Google Play services, so you can take advantage of features
-      and capabilities in each new release of Google Play services, without needing to update your
-      APK. </p>
-
-      <h4>Monetize your apps</h4>
-      <p>Connect with over a million Google advertisers and show relevant ads in your app. Users
-      engage with the ads, you make money. The Google Mobile Ads SDK fully supports AdMob,
-      DoubleClick for Publishers, DoubleClick Ad Exchange, and Search Ads for Mobile Apps. 
-      <br>
-      <a href="http://www.google.com/ads/admob/monetize.html" class="external-link">Learn more
-      and sign up</a>.</p>
-
-      <h4>Location-based ads</h4>
-      <p>You can use the publisher-provided location API to provide Google with the location when
-      requesting ads. Location-based ads can improve your app monetization.</p>
-
-      <h4>Innovative ads</h4>
-      <p>Choose from a range of ads across mobile devices and tablets, including interactive
-      ad units.</p>
-
-      <h4>Flexible and powerful tools </h4>
-      <p>Filters and controls help you manage your ads. If you want to use multiple ad
-      networks, you can do that too, with free ad network mediation.</p>
-
-      <h4>Ad Policy Compliant</h4>
-      <p>The Google Mobile Ads SDK available in Google Play services is compliant with
-      Google Play Ad Poilcy regarding the usage of
-      <a href="{@docRoot}google/play-services/id.html">advertising ID</a>.</p>
-  </div>
-
-  <div class="col-6 normal-links">
-    <h3 style="clear:left">Getting Started</h3>
-    <h4>1. Get the Google Play services SDK</h4>
-    <p>The Google Mobile Ads APIs are part of the Google Play services platform.</p>
-    <p>To get started, <a href="{@docRoot}google/play-services/setup.html">set up
-      the Google Play services SDK</a>.</p>
-
-    <h4>2. Run the sample</h4>
-    <p>Once you've installed the Google Play services package, the Google Mobile Ads sample is located
-    in <code>&lt;android-sdk&gt;/extras/google-play-services/samples/ads</code> and shows you how to
-    serve banner and interstitial ads using the Google Mobile Ads APIs.</p>
-
-    <h4>3. Read the documentation</h4>
-    <p>Your use of the Google Mobile Ads SDK is governed by the terms between you and Google that
-    govern your use of the Google product (AdSense/AdMob, AdX or DFP) with which you use the SDK.</p>
-    <p>For quick access while developing your Android apps, the <a
-    href="{@docRoot}reference/gms-packages.html">Google Mobile Ads API reference</a> is available here on
-    developer.android.com.</p>
-    <p>Detailed documentation for Google Mobile Ads for Android is available with the rest of the Google
-    Mobile Ads developer documents at <a href="https://developers.google.com/mobile-ads-sdk"
-    class="external-link">developers.google.com/mobile-ads-sdk</a>. </p>
-  </div>
-</div>
diff --git a/docs/html/google/play-services/cast.jd b/docs/html/google/play-services/cast.jd
deleted file mode 100644
index 656f634..0000000
--- a/docs/html/google/play-services/cast.jd
+++ /dev/null
@@ -1,92 +0,0 @@
-page.title=Google Cast Android API
-page.tags="chromecast","miracast"
-header.hide=1
-
-@jd:body
-
-
-<div class="landing-banner">
-
-<div class="col-6">
-  <img src="{@docRoot}images/google/googlecast.png" alt="">
-</div>
-<div class="col-6">
-
-  <h1 itemprop="name" style="margin-bottom:0;">Google Cast Android API</h1>
-  <p itemprop="description">Google Cast is a technology that enables multi-screen experiences, which
-  allows users to send content from mobile devices and personal computers to their TVs.
-  You can use the Google Cast Android API
-  to add casting functionality to your Android app so users can view your app content on their
-  big screens.</p>
-
-  <p>Explore the <a href="{@docRoot}reference/com/google/android/gms/cast/package-summary.html"
-  >Google Cast Android API reference</a> or visit <a
-  href="http://developers.google.com/cast/" class="external-link">developers.google.com/cast</a>
-  for more information about how to design and build your app to support Google Cast.</p>
-  <p></p>
-</div>
-</div>
-
-<div class="landing-docs">
-  <div class="col-6 normal-links">
-    <h3 style="clear:left">Key Developer Features</h3>
-
-      <h4>Add your own style to a pre-built receiver app</h4>
-      <p>Adding support for Google Cast requires that you provide a companion app on the
-      Google Cast device, known as the receiver app. If your app streams audio or video content
-      using one of several supported media types, then you can create a receiver app with your
-      own style and branding by creating nothing more than a CSS file.
-      <br/><a href="http://developers.google.com/cast/docs/styled_receiver" class="external-link"
-      >Create a Styled Media Receiver</a></p>
-
-      <h4>Build an entirely custom receiver app</h4>
-      <p>If the Styled Media Receiver does not provide the UI components required for your
-      receiver app or does not support the media types your app requires, you can build your
-      own receiver app as a web page using the JavaScript Receiver API.
-      <br/><a href="http://developers.google.com/cast/docs/styled_receiver" class="external-link"
-      >Create a Custom Receiver</a></p>
-
-      <h4>Add playback controls to your app</h4>
-      <p>To allow users to control playback on the receiver app, you can add a
-      controller interface to your app on Android, iOS, and Chrome. The client app on these devices
-      is known as the sender app and can perform a variety of actions using the Google Cast APIs
-      such as start and pause playback and control the volume on the Google Cast device.
-      <br/><a href="http://developers.google.com/cast/docs/sender_apps" class="external-link"
-      >Create a Sender App</a></p>
-  </div>
-
-
-  <div class="col-6 normal-links">
-    <h3 style="clear:left">Getting Started</h3>
-    <h4>1. Get the Google Play services SDK</h4>
-
-    <p>The Google Cast Android APIs are part of the Google Play services platform.</p>
-    <p>To get started, <a href="{@docRoot}google/play-services/setup.html">set up
-      the Google Play services SDK</a> on your development machine and be sure your test device has
-      Google Play services 4.2 (or higher) installed.</p>
-
-    <h4>2. Register your app</h4>
-    <p>Before you can develop and test apps on your own Google Cast device,
-    you need to acquire an app ID for your API calls and register your Google Cast device
-    (such as a Chromecast) as a development device. For details, read the
-    <a href="http://developers.google.com/cast/docs/registration"
-    class="external-link">Registration</a> guide.</p>
-
-    <h4>3. Design the Android app UI</h4>
-    <p>To provide the perfect user experience when casting your content to TVs, be sure your
-    app follows all the recommendations in the <a class="external-link"
-    href="https://developers.google.com/cast/docs/design_checklist"
-    >Design Checklist</a>.</p>
-
-    <h4>4. Start developing</h4>
-    <p>Read the <a class="external-link"
-    href="https://developers.google.com/cast/docs/developers">Developer's Guide</a>
-    to learn how to implement the receiver app and how to send it commands from your Android app.
-    </p>
-
-    <p>For quick access while developing your Android app, the
-    <a href="{@docRoot}reference/com/google/android/gms/cast/package-summary.html">Google Cast
-    Android API reference</a> is available here on developer.android.com.</p>
-
-  </div>
-</div>
\ No newline at end of file
diff --git a/docs/html/google/play-services/drive.jd b/docs/html/google/play-services/drive.jd
deleted file mode 100644
index e9662e6..0000000
--- a/docs/html/google/play-services/drive.jd
+++ /dev/null
@@ -1,141 +0,0 @@
-page.title=Google Drive Android API
-page.tags="storage","files","cloud"
-header.hide=1
-
-@jd:body
-
-    <div class="landing-banner">
-      <div class="col-6">
-        <img src="{@docRoot}images/google/gps-drive.png" alt="">
-      </div>
-
-      <div class="col-6">
-        <h1 itemprop="name" style="margin-bottom:0;">
-          Google Drive Android API
-        </h1>
-
-        <p itemprop="description">
-          Give your users access to their files, wherever they are, on any device.
-          The Google Drive Android API makes it easier than ever to use Drive to
-          store and sync user’s files between their mobile devices and the cloud.
-          Simply use Drive like local file storage and the API will handle the
-          syncing for you.
-        </p>
-
-        <p>
-          Explore the <a href=
-          "{@docRoot}reference/com/google/android/gms/drive/package-summary.html">Google
-          Drive Android API reference</a> or visit <a href=
-          "http://developers.google.com/drive/android">developers.google.com/drive/android</a>
-          for more information about integrating Google Drive into your app.
-        </p>
-      </div>
-    </div>
-
-    <div class="landing-docs">
-      <div class="col-6 normal-links">
-        <h3 style="clear:left">
-          Key Developer Features
-        </h3>
-
-        <h4>
-          Automatic syncing
-        </h4>
-
-        <p>
-          The Google Drive Android API uses the local device storage to create,
-          edit, and open files, then syncs them automatically when the device
-          is connected to the Internet. If a user requests a file that isn’t
-          already cached on the device, the Drive service downloads the file
-          the next time the device connects.<br>
-          <a href="http://developers.google.com/drive/android/files" class=
-          "external-link">Open a file</a>
-        </p>
-
-        <h4>
-          User interface components
-        </h4>
-
-        <p>
-          Building your own user interface for selecting or creating files is a
-          thing of the past. The Drive API includes activity builders for two
-          of the most common user activities: opening files and creating
-          files.<br>
-          <a href="http://developers.google.com/drive/android/create-file"
-          class="external-link">Create a file</a>
-        </p>
-
-        <h4>
-          Easily search for files
-        </h4>
-
-        <p>
-          The query builder allows you to easily construct a query by joining
-          together multiple parameters and filtering based on metadata. This
-          allows you to easily display only relevant files, such as files
-          shared with the user or files with a specific MIME type.<br>
-          <a class="external-link" href=
-          "http://developers.google.com/drive/android/queries">Query for a
-          file</a>
-        </p>
-      </div>
-
-      <div class="col-6 normal-links">
-        <h3 style="clear:left">
-          Getting Started
-        </h3>
-
-        <h4>
-          1. Get the Google Play services SDK
-        </h4>
-
-        <p>
-          The Google Drive Android API is part of the Google Play services
-          platform.
-        </p>
-
-        <p>
-          To get started, <a href=
-          "{@docRoot}google/play-services/setup.html">set up the Google Play
-          services SDK</a>.
-        </p>
-
-        <h4>
-          2. Run the sample
-        </h4>
-
-        <p>
-          Once you’ve set up the Google Play services SDK, you can run the
-          Google Drive sample located in
-          <code>&lt;android-sdk&gt;/extras/google-play-services/samples/drive</code>.
-          However, before you can run the sample, you need to register your app
-          in the Google Developers Console.
-        </p>
-
-        <p>
-          See <a class="external-link" href=
-          "http://developers.google.com/drive/android/get-started">Getting
-          Started guide</a> to learn how to get up and running with the Google
-          Drive Android API.
-        </p>
-
-        <h4>
-          3. Read the documentation
-        </h4>
-
-        <p>
-          For quick access while developing your Android apps, the <a href=
-          "{@docRoot}reference/com/google/android/gms/drive/package-summary.html">
-          Google Drive API reference</a> is available here on
-          developer.android.com.
-        </p>
-
-        <p>
-          Detailed documentation for the Google Drive Android API is available
-          with the rest of the Google Drive Platform documentation at <a class=
-          "external-link" href=
-          "https://developers.google.com/drive/android">developers.google.com/drive</a>.
-        </p>
-      </div>
-    </div>
-    
\ No newline at end of file
diff --git a/docs/html/google/play-services/games.jd b/docs/html/google/play-services/games.jd
deleted file mode 100644
index f68751d..0000000
--- a/docs/html/google/play-services/games.jd
+++ /dev/null
@@ -1,94 +0,0 @@
-page.title=Google Play Game Services
-page.tags="games"
-header.hide=1
-
-@jd:body
-
-<div class="landing-banner">
-
-<div class="col-6">
-  <img src="{@docRoot}images/google/gps-play_games_logo.png" alt="">
-</div>
-<div class="col-6">
-
-<h1 itemprop="name" style="margin-bottom:0;">Google Play Game Services</h1>
-  <p itemprop="description">
-Make your games social with Google Play game services. Add achievements,
-leaderboards, real-time multiplayer, and other popular features using the
-Google Play game services SDK. Let players sign in using their Google+
-identities and share their gaming experience with friends.
-  </p>
-<p>Explore the
-<a href="{@docRoot}reference/com/google/android/gms/games/package-summary.html">Google
-Play Games Android API reference</a> or visit
-<a class="external-link" href=
-"https://developers.google.com/games/services/">developers.google.com/games/services</a>
-for more information about integrating game services into your app.
-</p>
-</div>
-</div>
-
-<div class="landing-docs">
-  <div class="col-6 normal-links">
-    <h3 style="clear:left">Key Developer Features</h3>
-
-    <h4>Reward players with achievements</h4>
-    <p>Add hidden and incremental achievements to encourage users to explore your game in new
-    and interesting ways. A built-in achievement UI is available to display progress. <br />
-    <a class="external-link" href="https://developers.google.com/games/services/android/achievements">Add
-    achievements to your game</a>.</p>
-    </a>
-
-    <h4>Drive engagement with leaderboards</h4>
-    <p>Let players compare scores with friends using leaderboards and see how they rank
-    against other players worldwide. Google Play game services automatically maintains daily,
-    weekly, and all-time high scores. <br /><a class="external-link"
-    href="https://developers.google.com/games/services/android/leaderboards">Build leaderboards</a></p>
-
-    <h4>Save game data to the cloud</h4>
-    <p>Offer seamless game progress across all of the user's devices. Use the Saved Games API
-    to quickly store and synchronize game data on Google's cloud
-    infrastructure. <br />
-    <a
-    class="external-link" href="https://developers.google.com/games/services/android/savedgames">Save
-    game data to the cloud</a></p>
-
-    <h4>Create real-time and turn-based multiplayer games</h4>
-    <p>Make your game more dynamic with simultaneous or asynchronous gameplay.
-    Use the multiplayer APIs to send match invitations, auto-match players
-    anonymously, and exchange data between game clients. <br />Develop <a class="external-link"
-    href="https://developers.google.com/games/services/android/multiplayer">real-time
-    multiplayer</a> and <a class="external-link"
-    href="https://developers.google.com/games/services/android/turnbasedMultiplayer">turn-based multiplayer</a> games</p>
-  </div>
-
-
-  <div class="col-6 normal-links">
-    <h3 style="clear:left">Getting Started</h3>
-    <h4>1. Get the Google Play services SDK</h4>
-    <p>Google Play game services is part of the Google Play services platform.</p>
-    <p>To use game services, <a href="{@docRoot}google/play-services/setup.html">set up
-      the Google Play services SDK</a>. Then, see the <a class="external-link"
-      href="https://developers.google.com/games/services/android/quickstart">
-      Getting Started guide</a> to set up your app.
-    </p>
-
-    <h4>2. Run the sample</h4>
-
-    <p>Once you've installed the Google Play services package, <a class="external-link"
-      href="https://developers.google.com/games/services/downloads/">download the game services
-      samples</a> to learn how to use the major components of the Google Play game services SDK.
-    </p>
-
-    <h4>3. Read the documentation</h4>
-
-    <p>Read the <a class="external-link" href="https://developers.google.com/games/services/terms">
-    API Terms of Service</a>.</p>
-    <p>Detailed documentation for the Google Play game services SDK is available at <a class="external-link"
-    href="https://developers.google.com/games/services/">developers.google.com/games/services</a>.
-    </p>
-    <p>For quick access while developing your Android apps, the
-      <a href="{@docRoot}reference/com/google/android/gms/games/package-summary.html">API reference</a> is available here on developer.android.com.</p>
-  </div>
-
-</div>
diff --git a/docs/html/google/play-services/id.jd b/docs/html/google/play-services/id.jd
deleted file mode 100644
index 43d1809..0000000
--- a/docs/html/google/play-services/id.jd
+++ /dev/null
@@ -1,211 +0,0 @@
-page.title=Advertising ID
-page.tags=Ads,Advertising ID,ID
-header.hide=1
-
-@jd:body
-
-<div class="landing-banner">
-        
-<div class="col-8">
-
-  <h1 itemprop="name" style="margin-bottom:0;">Advertising ID</h1>
-  <p itemprop="description">The advertising ID is a user-specific, unique,
-  resettable ID for advertising, provided by Google Play services. It gives
-  users better controls and provides developers with a simple, standard system
-  to continue to monetize your apps. It is an anonymous identifier for advertising
-  purposes and enables users to reset their identifier or opt out of interest-based
-  ads within Google Play apps. </p>
-
-<p>The advertising ID is accessible through a straightforward API that you can implement in your apps. For details, 
-take a look at the
-<a href="#get_started">overview</a> and the <a
-href="{@docRoot}reference/com/google/android/gms/ads/identifier/package-summary.html">advertising ID API reference</a>.
-
-</div>
-</div>
-
-<div class="landing-docs">
-  <div class="col-6 normal-links">
-    <h3 style="clear:left">Key Developer Features</h3>
-
-      <h4>Standard, simple ID</h4>
-      <p>The advertising ID is a part of a standard, simple system for serving ads and performing analytics.</p>
-
-      <h4>Giving users control</h4>
-      <p>Users  can reset their advertising ID or opt out of interest-based ads at any time, right from the Google Settings app.
-      Their preferences apply across all ad companies that use the advertising ID.</p>
-       
-  </div>
-
-  <div class="col-6 normal-links">
-    <h3 style="clear:left">Getting Started</h3>
-    <h4>1. Get the Google Play services SDK</h4>
-    <p>The advertising ID APIs are part of the Google Play services platform.</p>
-    <p>To get started, <a href="{@docRoot}google/play-services/setup.html">set up
-      the Google Play services SDK</a>. </p>
-
-    <h4>2. Read the docs and example code</h4>
-    <p>Once you've installed the Google Play services package, review the <a href="#get_started">overview</a>
-    below, as well as the <a href="#example">example</a>.</p>
-    <p>
-    For detailed documentation, take a look at the <a href=
-    "{@docRoot}reference/com/google/android/gms/ads/identifier/package-summary.html">
-    advertising ID API reference documentation</a>.
-    </p>
-  </div>
-</div>
-
-<p class="caution" style=
-"background-color:#fffdeb;width:100%;margin-bottom:1em;padding:.5em;">
-  As a reminder, please note that starting <strong>1 August 2014</strong>, new
-  apps and app updates distributed through Google Play must use the advertising
-  ID in lieu of any other persistent identifiers for any advertising purposes,
-  on devices that support the advertising ID.<br>
-  <br>
-  To learn how to check your app's compliance through the Developer Console, or
-  for details on the associated developer policy changes, please see the
-  <a href=
-  "https://support.google.com/googleplay/android-developer/answer/6048248">Advertising
-  ID topic</a> in the Google Play developer help center.
-</p>
-
-<h2 id="get_started">Using the Advertising ID</h2>
-
-<p>
-  The <strong>advertising ID</strong> is a unique but
-  user-resettable string identifier that lets ad networks and other apps anonymously
-  identify a user. The user's advertising ID is made available to apps through APIs
-  provided in Google Play services.
-</p>
-<p>
-  Users can reset their advertising ID at any time, right from the Ads section of the
-  Google Settings app on their devices. From the same app, users can also
-  opt-out of targeted advertising based on the advertising ID by setting the appropriate
-  <strong style="white-space:nowrap">ad tracking preference</strong>. When the
-  user opts-out of targeted ads, this ad tracking preference is made available
-  to apps through a Google Play services API.
-</p>
-<p>
-  Apps making use of the advertising ID <strong>must check for and respect</strong> the
-  user's ad tracking preference. Also please note that any use of the advertising ID
-  must abide by the terms of the <a class="external-link"
-  href="http://play.google.com/about/developer-content-policy.html#ADID">Google Play
-  Developer Content Policies</a>. 
-</p>
-
-<h3 id="format">Format of the Advertising ID</h3>
-
-<p>
-  Google Play services APIs expose the user's advertising ID as a string format of UUID,
-  with values similar to this:
-</p>
-<p style="margin-left:1.5em;"><code>“38400000-8cf0-11bd-b23e-10b96e40000d”</code></p>
-
-<h3 id="requirements">Requirements</h3>
-
-<ul>
-  <li>The advertising ID APIs are supported in Google Play services 4.0+</li>
-  <li>Support for the advertising ID on specific devices is based on their installed versions 
-  of Google Play services</li>
-</ul>
-
-<h3 id="obtaining">Obtaining the user's advertising ID and ad tracking preference</h3>
-
-<p>
-  If you want to use the advertising ID in your app, you must first install the Google
-  Play services SDK. As noted in the requirements above, you should install the
-  SDK for Google Play services 4.0 or higher if you will develop using the advertising ID
-  APIs. For information about how to get started, see <a href=
-  "{@docRoot}google/play-services/setup.html">Set Up Google Play services</a>.
-</p>
-<p>
-  The advertising ID APIs are available in the <a href=
-  "{@docRoot}reference/com/google/android/gms/ads/identifier/package-summary.html">
-  <code>com.google.android.gms.ads.identifier</code></a> package in the Google
-  Play Services library. To obtain the user's advertising ID and tracking preference,
-  call the method
-  <a href=
-  "{@docRoot}reference/com/google/android/gms/ads/identifier/AdvertisingIdClient.html#getAdvertisingIdInfo(android.content.Context)">
-  <code>getAdvertisingIdInfo()</code></a>, which returns an <a href=
-  "{@docRoot}reference/com/google/android/gms/ads/identifier/AdvertisingIdClient.Info.html">
-  <code>AdvertisingIdClient.Info</code></a> encapsulating the user's current Advertising ID
-  and tracking preference.
-</p>
-
-<p class="note">
-  <strong>Note:</strong> The <code>getAdvertisingIdInfo()</code> method is a
-  blocking call, so you must not call it on the main (UI) thread. If called on
-  the main thread, the method throws <code>IllegalStateException</code>.
-</p>
-
-<p>
-  Once you've retrieved the <code>AdvertisingIdClient.Info</code> object, you
-  can use it's <a href=
-  "{@docRoot}reference/com/google/android/gms/ads/identifier/AdvertisingIdClient.Info.html#getId()">
-  <code>getId()</code></a> and <a href=
-  "{@docRoot}reference/com/google/android/gms/ads/identifier/AdvertisingIdClient.Info.html#isLimitAdTrackingEnabled()">
-  <code>isLimitAdTrackingEnabled()</code></a> methods to access the advertising ID and
-  ad tracking preference.
-</p>
-
-<table>
-<tr>
-<th>Method</th>
-<th>Description</th>
-</tr>
-<tr>
-<td><code>public String getId()</code></td>
-<td style="white-space:nowrap;">Retrieves the advertising ID.</td>
-</tr>
-<tr>
-<td style="white-space:nowrap;"><code>public boolean isLimitAdTrackingEnabled()</code></td>
-<td>Retrieves whether the user has limit ad tracking enabled or not.</td>
-</tr>
-</table>
-
-<p>
-  The advertising ID APIs do not include a "reset" method. Only users can initiate a
-  reset of their own advertising IDs, through the Google Settings application.
-</p>
-<p>
-  For more information about the advertising ID APIs, see the <a href=
-  "{@docRoot}reference/com/google/android/gms/ads/identifier/package-summary.html">
-  reference documentation</a>.
-</p>
-
-<h3 id="example">Example implementation</h3>
-
-<p>
-  Here's a basic illustration of how you can retrieve the user's advertising ID and ad
-  tracking preference in your app:
-</p>
-
-<pre>
-import com.google.android.gms.ads.identifier.AdvertisingIdClient;
-import com.google.android.gms.ads.identifier.AdvertisingIdClient.Info;
-import com.google.android.gms.common.GooglePlayServicesAvailabilityException;
-import com.google.android.gms.common.GooglePlayServicesNotAvailableException;
-import java.io.IOException;
-...
-
-// Do not call this function from the main thread. Otherwise, 
-// an IllegalStateException will be thrown.
-public void getIdThread() {
-
-  Info adInfo = null;
-  try {
-    adInfo = AdvertisingIdClient.getAdvertisingIdInfo(mContext);
-
-  } catch (IOException e) {
-    // Unrecoverable error connecting to Google Play services (e.g.,
-    // the old version of the service doesn't support getting AdvertisingId).
- 
-  } catch (GooglePlayServicesAvailabilityException e) {
-    // Encountered a recoverable error connecting to Google Play services. 
-
-  } catch (GooglePlayServicesNotAvailableException e) {
-    // Google Play services is not available entirely.
-  }
-  final String id = adInfo.getId();
-  final boolean isLAT = adInfo.isLimitAdTrackingEnabled();
-}</pre>
diff --git a/docs/html/google/play-services/index.jd b/docs/html/google/play-services/index.jd
index 5ccdcb9..11060e8 100644
--- a/docs/html/google/play-services/index.jd
+++ b/docs/html/google/play-services/index.jd
@@ -24,8 +24,8 @@
 </div>
 </div>
 
-  <div class="layout-content-row">
-  <div class="layout-content-col span-4">
+  <div class="cols">
+  <div class="col-4">
 
 <h4>Google Technology</h4>
 <p>Google Play services provides you with easy access to Google services and is
@@ -34,7 +34,7 @@
 easier and faster.</p>
 
   </div>
-  <div class="layout-content-col span-4">
+  <div class="col-4">
 
 <h4>Standard Authorization</h4>
 <p>All products in Google Play services share a common authorization API
@@ -43,7 +43,7 @@
   to Google services.</p>
 
   </div>
-  <div class="layout-content-col span-4">
+  <div class="col-4">
 
 <h4>Automatic Updates</h4>
 <p>Devices running Android 2.3 or higher that have the Google Play Store
@@ -666,8 +666,8 @@
 
 <div class="vspace size-2">&nbsp;</div>
 
-<div class="layout-content-row">
-  <div class="layout-content-col span-6">
+<div class="cols">
+  <div class="col-6">
     <h4 id="apk">The Google Play services APK</h4>
     <p>
         The Google Play services APK contains the individual Google services and runs
@@ -687,7 +687,7 @@
     </p>
   </div>
 
-  <div class="layout-content-col span-6">
+  <div class="col-6">
     <img src="/images/play-services-diagram.png" />
     <p class="img-caption"><em>The Google Play services APK on user devices receives regular updates
     for new APIs, features, and bug fixes.</em></p>
diff --git a/docs/html/google/play-services/location.jd b/docs/html/google/play-services/location.jd
deleted file mode 100644
index b28302c..0000000
--- a/docs/html/google/play-services/location.jd
+++ /dev/null
@@ -1,125 +0,0 @@
-page.title=Location APIs
-page.tags=location,geofence,geofencing,gps
-header.hide=1
-@jd:body
-
-
-    <div class="landing-banner">
-
-<div class="col-6">
-    <img src="{@docRoot}images/google/gps-location.png" alt="Location APIs Logo">
-</div>
-
-<div class="col-6">
-
-<h1 itemprop="name" style="margin-bottom:0;">Location &amp; Places</h1>
-<p itemprop="description">
-    The location APIs make it easy for you to build location-aware applications, without needing to
-    focus on the details of the underlying location technology. The related Places APIs also help
-    your app identify real-world points of interest near the user.
-</p>
-<p>
-    To get started, first <a href="{@docRoot}google/play-services/setup.html">set up</a>
-    the Google Play services SDK. To learn how to identify the user's location, see
-    <a href="{@docRoot}training/location/index.html">Making Your App Location Aware</a>, or to
-    identify nearby places, see the
-<a href="https://developers.google.com/places/android">Google Places API for Android</a>
-developer guide.
-</p>
-</div>
-</div>
-<div class="landing-docs">
-  <h3 style="clear:left">Key Developer Features</h3>
-  <div class="layout-content-row normal-links">
-  <div class="layout-content-col span-6">
-
-
-
-<h4 style="font-weight:bold">Fused location provider</h4>
-
-<p>The Fused Location Provider intelligently manages the underlying location technology and gives you the best location according to your needs. </p>
-
-<ul>
-    <li>
-        <em>Simple APIs</em>: Lets you specify high-level needs like "high accuracy" or "low power", instead of
-        having to worry about location providers.
-    </li>
-    <li>
-        <em>Immediately available</em>: Gives your apps immediate access to the best, most recent location.
-    </li>
-    <li>
-        <em>Power-efficiency</em>: Minimizes your app's use of power. Based on all incoming location requests and available sensors, fused location provider chooses the most efficient way to meet those needs.
-    </li>
-    <li>
-        <em>Versatility</em>: Meets a wide range of needs, from foreground uses that need highly accurate
-        location to background uses that need periodic location updates with negligible power impact.
-    </li>
-
-</ul>
-
-<h4 style="font-weight:bold">Geofencing APIs</h4>
-
-<p>Lets your app setup geographic boundaries around specific locations and then receive notifications when the user enters or leaves those areas. </p>
-
-<ul>
-    <li>
-        <em>Simple but powerful APIs</em>: Allows batch addition and removal of geofences. Ability to manage
-        multiple geofences at the same time. Ability to filter alerts for both entry and exit or
-        entry only or exit only.
-    </li>
-    <li>
-        <em>Optimized for battery</em>: Adjusts location updates based on user’s proximity to the geofence
-        and user’s modality (still, walking, driving, and so on).
-    </li>
-</ul>
-</div>
-
-<div class="layout-content-col span-6">
-
-<h4 style="font-weight:bold">Places API</h4>
-
-<p>The <a href="https://developers.google.com/places/android/">Google
-Places API for Android</a> helps you build location-aware apps
-that respond contextually to the local businesses and other places near the
-device:</p>
-
-<ul>
-<li>Use the built-in
-  <a href="https://developers.google.com/places/android/placepicker">place
-  picker</a> UI widget, allowing users to select a place on an interactive
-  map.</li>
-<li>Identify the user's
-  <a href="https://developers.google.com/places/android/current-place">current
-  place</a>, such as a local business, point of interest, or other geographic location.</li>
-<li>Retrieve and display rich
-  <a href="https://developers.google.com/places/android/place-details">information
-  about a place</a>.</li>
-<li>Make it easy to enter place names and addresses, by
-  <a href="https://developers.google.com/places/android/autocomplete">autocompleting</a>
-  your users' queries as they type.</li>
-<li>Differentiate your app by supplying up-to-date local information, and
-  <a href="https://developers.google.com/places/android/add-place">adding
-  places</a> to Google's Places database.</li>
-</ul>
-
-
-<h4 style="font-weight:bold">Activity recognition</h4>
-
-<p>The Activity recognition API makes it easy to check the user’s current activity&mdash;still, walking, cycling, and in-vehicle&mdash;with very efficient use of the battery:</p>
-<ul>
-    <li>
-        <em>Optimized for battery</em>: Uses low-power sensors to recognize the user's current physical activity.
-    </li>
-    <li>
-        <em>Enhances other services with context</em>: Great for adding movement awareness to location awareness. Apps can adjust the amount of
-        location awareness they provide, based on the current user movement. For example, a
-        navigation app can request more frequent updates when the user is driving.
-    </li>
-    <li>
-        <em>Advanced activity detection</em>: For apps that want to do their own
-        post-processing, the activity APIs provide confidence values for each of the activities.
-        It also includes two activities that indicate unreliable measurements: unknown and tilt.
-    </li>
-</ul>
-</div>
-</div>
diff --git a/docs/html/google/play-services/maps.jd b/docs/html/google/play-services/maps.jd
deleted file mode 100644
index 9bf5f80..0000000
--- a/docs/html/google/play-services/maps.jd
+++ /dev/null
@@ -1,97 +0,0 @@
-page.title=Google Maps Android API v2
-page.tags=mapview,location
-header.hide=1
-
-@jd:body
-
-
-<div class="landing-banner">
-        
-<div class="col-6">
-  <img src="{@docRoot}images/google/gps-maps.png" alt="">
-</div>
-<div class="col-6">
-
-  <h1 itemprop="name" style="margin-bottom:0;">Google Maps Android API v2</h1>
-  <p itemprop="description">Allow your users to explore the world with rich maps provided by
-  Google. Identify locations with <b>custom markers</b>, augment the map data
-  with <b>image overlays</b>, embed <b>one or more maps</b> as fragments,
-  and much more.</p>
-  <p>Explore the <a
-href="{@docRoot}reference/com/google/android/gms/maps/package-summary.html"
->Google Maps Android API v2 reference</a> or visit <a class="external-link"
-href="https://developers.google.com/maps/documentation/android/">developers.google.com/maps</a>
-for more information about adding maps to your app.</p>
-</div>
-</div>
-
-
-
-<div class="landing-docs">
-  <div class="col-6 normal-links">
-    <h3 style="clear:left">Key Developer Features</h3>
-    <h4>Add maps to your app</h4>
-    <p>With Google Maps Android API v2, you can embed maps into an activity
-    as a fragment with a simple XML snippet. The new Maps offer exciting features such as 3D maps;
-    indoor, satellite, terrain, and hybrid maps;
-    vector-based tiles for efficient caching and drawing; animated transitions; and much more.
-    <a class="external-link" href="https://developers.google.com/maps/documentation/android/map">Add
-    a map object</a>.</p>
-    
-    <h4>Customize the map</h4>
-    <p>Add markers onto the map to indicate special points of interest for your users.
-    You can define custom colors or icons for your map markers to
-    match your app's look and feel. To further enhance the app, draw polylines
-    and polygons to indicate paths or regions, or provide complete image overlays.
-    <a class="external-link" href="https://developers.google.com/maps/documentation/android/marker">Draw
-    markers</a>.</p>
-    </a>
-    
-    <h4>Control the user's view</h4>
-    <p>Give your users a different view of the world with the ability to control the rotation, tilt,
-    zoom, and pan properties of the "camera" perspective of the map.
-    <a class="external-link" href="https://developers.google.com/maps/documentation/android/views">Change
-    the view</a>.</p>
-
-    <h4>Add Street View to your app</h4>
-    <p>Embed Street View into an activity and let your users explore the world
-      through panoramic 360-degree views. Programmatically control the zoom and
-      orientation (tilt and bearing) of the Street View camera, and animate the
-      camera movements over a given duration.
-      <a class="external-link" href="https://developers.google.com/maps/documentation/android/streetview">Add Street View</a>.</p>
-  </div>
-
-
-  <div class="col-6 normal-links">
-    <h3 style="clear:left">Getting Started</h3>
-    <h4>1. Get the Google Play services SDK</h4>
-    <p>Google Maps Android API v2 is part of the Google Play services platform.</p>
-    <p>To use Google Maps, <a href="{@docRoot}google/play-services/setup.html">set up
-      the Google Play services SDK</a>. Then see the <a class="external-link"
-      href="https://developers.google.com/maps/documentation/android/start#installing_the_google_maps_android_v2_api">
-      Getting Started guide</a> to get your API key for Maps and set up your app.
-    </p>
-            
-    <h4>2. Run the sample</h4>
-    
-    <p>Once you've installed the Google Play services package, the Google Maps sample is located in
-      <code>&lt;android-sdk&gt;/extras/google-play-services/samples/maps</code> and shows you
-      how to use the major components of Google Maps Android API v2.
-    </p>
-    
-    <h4>3. Read the documentation</h4>
-    
-    <p>Read the <a href="https://developers.google.com/maps/terms">Google Maps
-    API Terms of Service</a>.</p>
-    
-    <p>For quick access while developing your Android apps, the
-      <a href="{@docRoot}reference/com/google/android/gms/maps/package-summary.html">Google Maps
-      Android API v2 reference</a> is available here on developer.android.com.</p>
-
-    <p>Detailed documentation for Google Maps Android API v2 is available with the rest of the
-    Google Maps developer documents at <a class="external-link"
-    href="https://developers.google.com/maps/documentation/android/">developers.google.com/maps</a>.
-    </p>
-  </div>
-
-</div>
diff --git a/docs/html/google/play-services/plus.jd b/docs/html/google/play-services/plus.jd
deleted file mode 100644
index 84224e7..0000000
--- a/docs/html/google/play-services/plus.jd
+++ /dev/null
@@ -1,90 +0,0 @@
-page.title=Google+ Platform for Android
-page.tags=authentication,signin,social
-header.hide=1
-
-@jd:body
-
-
-<div class="landing-banner">
-        
-<div class="col-6">
-  <img src="{@docRoot}images/google/gps-googleplus.png" alt="">
-</div>
-<div class="col-6">
-
-  <h1 itemprop="name" style="margin-bottom:0;">Google+ Platform for Android</h1>
-  <p itemprop="description">The Google+ platform for Android lets you authenticate a user
-  with the same credentials they use on Google every day. Once a user signs in with Google,
-  you can create more engaging experiences and drive usage of your app.</p>
-  
-  <p>Explore the <a href="{@docRoot}reference/com/google/android/gms/plus/package-summary.html"
->Google+ Android API reference</a> or visit <a class="external-link"
-href="https://developers.google.com/+/mobile/android/">developers.google.com/+</a> for more
-information about integrating Google+ into your app.</p>
-</div>
-</div>
-
-<div class="landing-docs">
-  <div class="col-6 normal-links">
-    <h3 style="clear:left">Key Developer Features</h3>
-
-      <h4>Trusted authentication</h4>
-      <p>Google+ Sign-In is a simple, trusted, and secure way to let people sign in
-      to your app with their Google credentials and bring along their Google+ info.
-      <br />
-      <a href="https://developers.google.com/+/mobile/android/sign-in"
-      class="external-link">Add sign-in</a>.</p>
-
-      <h4>Access the profile and social graph</h4>
-      <p>Once users have signed in with Google, your app can welcome them by name,
-      display their picture, connect them with friends, and lots more.
-      <br />
-      <a href="https://developers.google.com/+/mobile/android/people"
-      class="external-link">Access the social graph</a>.</p>
-       
-      <h4>Stand out in the stream</h4>
-      <p>Interactive posts is a rich way of sharing to Google+. It lets users prompt friends
-      to take specific actions in your app from a Google+ post, like "listen," "RSVP," "check-in,"
-      and over 100 more actions. <br />
-      <a class="external-link"
-      href="https://developers.google.com/+/mobile/android/share">Post interactive content</a>.</p>
-
-      <h4>Recommend content</h4>
-      <p>Add a native +1 button so users can recommend content from your app. These endorsements
-      can give your app more credibility and help it grow faster.  <br />
-      <a class="external-link"
-      href="https://developers.google.com/+/mobile/android/recommend">Add the +1 button</a>.</p>
-  </div>
-
-
-  <div class="col-6 normal-links">
-    <h3 style="clear:left">Getting Started</h3>
-    <h4>1. Get the Google Play services SDK</h4>
-    <p>The Google+ Android APIs are part of the Google Play services platform.</p>
-    <p>To get started, <a href="{@docRoot}google/play-services/setup.html">set up
-      the Google Play services SDK</a>.
-    </p>
-            
-    <h4>2. Run the sample</h4>
-    <p>Once you've installed the Google Play services package, you can run the Google+ sample located in
-    <code>&lt;android-sdk&gt;/extras/google-play-services/samples/plus</code>. However, before
-    you can run the sample, you need to register your app in the Google APIs Console.</p>
-    <p>See <a class="external-link"
-      href="https://developers.google.com/+/mobile/android/getting-started">Getting Started with
-      the Google+ Platform for Android</a> for more information about how to get the sample up and 
-      running.
-    </p>
-    
-    <h4>3. Read the documentation</h4>
-    <p>Read the <a href="https://developers.google.com/+/terms">Google+ Platform
-    Terms of Service</a>.</p>
- 
-    <p>For quick access while developing your Android apps, the
-    <a href="{@docRoot}reference/com/google/android/gms/plus/package-summary.html">Google+
-    API reference</a> is available here on developer.android.com.</p>
- 
-    <p>Detailed documentation for the Google+ Android APIs is available with the rest of the
-    Google+ developer documents at <a class="external-link"
-    href="https://developers.google.com/+/mobile/android/">developers.google.com/+</a>.</p>
-  </div>
-</div>
diff --git a/docs/html/google/play-services/wallet.jd b/docs/html/google/play-services/wallet.jd
deleted file mode 100644
index 744c8d3..0000000
--- a/docs/html/google/play-services/wallet.jd
+++ /dev/null
@@ -1,87 +0,0 @@
-page.title=Google Wallet Instant Buy for Android
-page.tags=Wallet,payments,Instant Buy
-header.hide=1
-
-@jd:body
-
-<div class="landing-banner">
-<div class="col-8">
-  <h1 itemprop="name" style="margin-bottom:0;">Google Wallet Instant Buy</h1>
-  <p itemprop="description">Add fast, secure checkout for users buying physical goods and
-  services from your app.  Transactions are monitored for fraud 24/7. Keep your existing
-  payments infrastructure and integrate Google Wallet quickly, easily and free of charge.</p>
-
-  <p>To ensure that your app content is consistent with the requirements for
-    Instant Buy access, <a class="external-link" href="https://support.google.com/wallet/business/contact/interest">apply for content review</a> before
-    starting development. Note that Instant Buy is currently only
-    available to US-based merchants. Once you've completed integration, you can
-    apply for production access by <a class="external-link" href="https://support.google.com/wallet/business/contact/ui_review">submitting your sandbox integration for review</a>.</p>
-
-  <p>Check out the <a
-  href="{@docRoot}reference/com/google/android/gms/wallet/package-summary.html">Instant
-  Buy API reference</a> and visit
-  <a href="https://developers.google.com/wallet/instant-buy/">developers.google.com/wallet/instant-buy/</a>
-  for complete information about integrating Google Wallet Instant Buy into your app.</p>
-</div>
-
-<div class="col-4">
-  <img src="{@docRoot}images/google/gps-wallet-instant.png" alt="" style="padding-bottom:14px;width:210px">
-</div>
-</div>
-
-<div class="landing-docs">
-  <div class="col-6 normal-links">
-    <h3 style="clear:left">Key Developer Features</h3>
-
-      <h4>Add the "Buy with Google" button</h4>
-      <p>Easily embed a “Buy with Google” button in your flow to let customers purchase instantly
-      from your app. Customers can grant you access to their payment information with just
-      a few clicks.
-      <br />
-      <a href="https://developers.google.com/commerce/wallet/instant-buy/android/tutorial#add_google_wallet_buttons_to_your_ui"
-      class="external-link">Add a "Buy with Google" button</a>.</p>
-
-      <h4>Streamline Purchases with Google+ Sign-On</h4>
-      <p>For users ready to purchase, you can simplify the login and account creation steps
-      by adding Google+ sign in. Users can sign in with a single click and share their
-      profile information during the purchase.
-      <br />
-      <a href="https://developers.google.com/commerce/wallet/instant-buy/wallet-sso#android"
-      class="external-link">Add Google+ Sign-In for Wallet</a>.</p>
-
-      <h4>Minimize User Data Entry</h4>
-      <p>Google Wallet provides auto-completion of addresses, minimizing user data entry. You can also
-      retrieve billing and shipping addresses directly from the user’s Wallet to-do form pre-fills.<br />
-      <a class="external-link"
-      href="{@docRoot}reference/com/google/android/gms/wallet/MaskedWallet.html#getBillingAddress()">Get
-      billing addresses</a>.</p>
-  </div>
-
-
-  <div class="col-6 normal-links">
-    <h3 style="clear:left">Getting Started</h3>
-    <h4>1. Get the Google Play services SDK</h4>
-    <p>The Google Wallet Android APIs are part of the Google Play services platform.</p>
-    <p>To get started, <a href="{@docRoot}google/play-services/setup.html">set up
-      the Google Play services SDK</a>. Then see the <a class="external-link"
-      href="https://developers.google.com/commerce/wallet/instant-buy/android/tutorial">tutorial</a>
-      to learn how to set up your app.
-    </p>
-    <h4>2. Run the sample</h4>
-    <p>Once you've installed the Google Play services package, try the Google Wallet
-    sample located in <code>&lt;android-sdk&gt;/extras/google-play-services/samples/wallet</code>.
-    The sample shows you how to use the major components of the Instant Buy API.</p>
-    <p>The <a
-    class="external-link" href="https://developers.google.com/wallet/instant-buy/android/tutorial">Instant Buy Android API tutorial</a>
-    provides directions on how to get the Wallet sample up and running.</p>
-    <h4>3. Read the documentation</h4>
-    <p>For quick access while developing your Android apps, the <a
-    href="{@docRoot}reference/com/google/android/gms/wallet/package-summary.html">Google Wallet
-    API reference</a> is available here on developer.android.com.</p>
-
-    <p>Detailed documentation for the Instant Buy API is available at <a class="external-link"
-    href="https://developers.google.com/wallet/instant-buy/">developers.google.com/wallet/instant-buy/</a></p>
-
-
-  </div>
-</div>
diff --git a/docs/html/google/play/billing/billing_subscriptions.jd b/docs/html/google/play/billing/billing_subscriptions.jd
index f7df752..e412a9d 100644
--- a/docs/html/google/play/billing/billing_subscriptions.jd
+++ b/docs/html/google/play/billing/billing_subscriptions.jd
@@ -1,7 +1,7 @@
 page.title=In-app Subscriptions
 parent.title=In-app Billing
 parent.link=index.html
-page.metaDescription=Subscriptions let you sell content or features in your app with automated, recurring billing.
+page.metaDescription=Create a steady revenue stream by selling subscriptions to your content.
 page.image=/images/play_dev.jpg
 page.tags="subscriptions, billing, inapp, iap"
 meta.tags="monetization, inappbilling, subscriptions"
@@ -10,28 +10,9 @@
 <div id="qv-wrapper">
 <div id="qv">
   <h2>Quickview</h2>
-  <ul>
-    <li>Subscriptions let you sell products with automated, recurring billing
-        at a variety of intervals.</li>
-    <li>You can offer a configurable trial period for monthly and
-        annual subscriptions.</li>
-    <li>You can manage subscriptions through the Developer Console, or by using
-        the
-        <a href="https://developers.google.com/android-publisher/">Google Play
-        Developer API</a>.</li>
-    <li>Users purchase your subscriptions from inside your apps, rather than
-        directly from Google Play.</li>
-    <li>Users can renew their subscriptions while a current subscription is
-        active.</li>
-    <li>Users can upgrade or downgrade a subscription in the middle of a
-        subscription period. The old subscription's cost is pro-rated, and the
-        unused portion is applied to the replacement subscription.</li>
-    <li>You can defer billing for a particular user's subscription, to manage
-        accounts or offer rewards.</li>
-  </ul>
   <h2>In this document</h2>
   <ol>
-    <li><a href="#overview">Overview of Subscriptions</a></li>
+    <li><a href="#overview">Overview</a></li>
     <li><a href="#administering">Configuring Subscriptions Items</a></li>
     <li><a href="#cancellation">Subscription Cancellation</a></li>
     <li><a href="#payment">Payment Processing and Policies</a></li>
@@ -53,7 +34,27 @@
 specific to subscriptions, along with some strategies for the associated billing
 and business models.</p>
 
-<h2 id="overview">Overview of Subscriptions</h2>
+  <ul>
+    <li>Subscriptions let you sell products with automated, recurring billing
+        at a variety of intervals.</li>
+    <li>You can offer a configurable trial period for monthly and
+        annual subscriptions.</li>
+    <li>You can manage subscriptions through the Developer Console, or by using
+        the
+        <a href="https://developers.google.com/android-publisher/">Google Play
+        Developer API</a>.</li>
+    <li>Users purchase your subscriptions from inside your apps, rather than
+        directly from Google Play.</li>
+    <li>Users can renew their subscriptions while a current subscription is
+        active.</li>
+    <li>Users can upgrade or downgrade a subscription in the middle of a
+        subscription period. The old subscription's cost is pro-rated, and the
+        unused portion is applied to the replacement subscription.</li>
+    <li>You can defer billing for a particular user's subscription, to manage
+        accounts or offer rewards.</li>
+  </ul>
+
+<h2 id="overview">Overview</h2>
 <p>A <em>subscription</em> is a product type offered in In-app Billing that
 lets you sell content, services, or features to users from inside your app with
 recurring, automated billing at the interval you specify. You can sell subscriptions to almost
@@ -86,7 +87,7 @@
 content (for example, from your web site or another service).
 The server-side API lets you validate the status of a subscription when users
 sign into your other services. For more information about the API, see <a
-href="{@docRoot}google/play/billing/gp-purchase-status-api.html">Google Play Developer API</a>. </p>
+href="{@docRoot}google/play/developer-api.html">Google Play Developer API</a>. </p>
 
 <p>You can also build on your existing external subscriber base from inside your
 Android apps.</p>
@@ -138,7 +139,7 @@
 In-app Billing</a>.</p>
 
 <p>You can also create and manage subscriptions using the
-<a href="{@docRoot}google/play/billing/gp-purchase-status-api.html">
+<a href="{@docRoot}google/play/developer-api.html">
 Google Play Developer API</a>.</p>
 
 <h3 id="pricing">Subscription pricing</h3>
@@ -190,7 +191,7 @@
 API. Your apps can store the token locally or pass it to your backend servers,
 which can then use it to validate or cancel the subscription remotely using the
 <a
-href="{@docRoot}google/play/billing/gp-purchase-status-api.html">Google Play Developer API</a>.</p>
+href="{@docRoot}google/play/developer-api.html">Google Play Developer API</a>.</p>
 
 <p>If a recurring payment fails (for example, because the customer’s credit
 card has become invalid), the subscription does not renew. How your app is
@@ -270,7 +271,7 @@
 <h3 id="deferred-billing">Deferred Billing</h3>
 
 <p>Using the
-<a href="{@docRoot}google/play/billing/gp-purchase-status-api.html">Google
+<a href="{@docRoot}google/play/developer-api.html">Google
 Play Developer API</a>, you can defer the next billing date for a
 subscriber. The user continues to be subscribed to the content, and has full
 access to it, but is not charged during the deferral period. This allows you
@@ -416,11 +417,11 @@
 Orders</strong> page in the Play Store, or by contacting you directly.</p>
 
 <p>If you receive requests for refunds, you can use the
-<a href="{@docRoot}google/play/billing/gp-purchase-status-api.html">Google Play
+<a href="{@docRoot}google/play/developer-api.html">Google Play
 Developer API</a> or the Merchant Center to cancel the subscription, verify that it
 is already canceled, or refund the user's payment without canceling it. You
 can also use the
-<a href="{@docRoot}google/play/billing/gp-purchase-status-api.html">Google
+<a href="{@docRoot}google/play/developer-api.html">Google
 Play Developer API</a> to <em>refund and revoke</em> a
 user's subscription. If you refund and revoke a subscription, the user's
 subscription is immediately canceled, and the user's most recent subscription
@@ -512,5 +513,5 @@
 other services.</p>
 
 <p>For complete information, see
-<a href="{@docRoot}google/play/billing/gp-purchase-status-api.html">Google Play
+<a href="{@docRoot}google/play/developer-api.html">Google Play
 Developer API</a>.</p>
diff --git a/docs/html/google/play/billing/index.jd b/docs/html/google/play/billing/index.jd
index c671c71..ae6e222 100644
--- a/docs/html/google/play/billing/index.jd
+++ b/docs/html/google/play/billing/index.jd
@@ -1,5 +1,5 @@
-page.title=Google Play In-app Billing
-page.metaDescription=In-app Billing lets you sell digital content as one-time purchases or subscriptions.
+page.title=In-app Billing
+page.metaDescription=Sell digital content as one-time purchases inside your app.
 page.image=/images/play_dev.jpg
 meta.tags="monetizing, inappbilling, subscriptions"
 page.tags="billing, inapp, iap"
@@ -24,7 +24,9 @@
     period.</li>
   <li><strong>IAB Sandbox</strong>&mdash;The In-app Billing Sandbox now supports
     testing subscription purchases.</li>
-  <li><strong>IAB v2 shutdown</strong>&mdash;In-app Billing v2 API is deprecated and will be shut down in January 2015. If your app is still using In-app Billing v2, please migrate to the v3 API as soon as possible.</li>
+  <li><strong>IAB v2 shutdown</strong>&mdash;In-app Billing v2 API is deprecated
+    and will be shut down in January 2015. If your app is still using In-app Billing
+    v2, please migrate to the v3 API as soon as possible.</li>
   <li><strong>Seasonal subscriptions</strong>&mdash;You can now set up a
     recurring <a href="billing_subscriptions.html#user-billing">seasonal
     subscription</a> that starts and ends on the same date each year (for
diff --git a/docs/html/google/play/billing/gp-purchase-status-api.jd b/docs/html/google/play/developer-api.jd
similarity index 97%
rename from docs/html/google/play/billing/gp-purchase-status-api.jd
rename to docs/html/google/play/developer-api.jd
index fa0c397..6d12841 100644
--- a/docs/html/google/play/billing/gp-purchase-status-api.jd
+++ b/docs/html/google/play/developer-api.jd
@@ -1,5 +1,7 @@
 page.title=Google Play Developer API
 page.tags="In-app Billing", "Google Play", "inapp billing", "in app billing", "iab", "billing", "publishing"
+page.image=/images/play_dev.jpg
+page.metaDescription=A REST-based web service for remote app publishing and catalog management through Google Play.
 
 
 @jd:body
@@ -23,8 +25,8 @@
 
   <h2>See also</h2>
   <ol>
-    <li><a href="https://developers.google.com/android-publisher/">Google Play
-        Developer API</a> documentation</li>
+    <li><a href="https://developers.google.com/android-publisher/">
+        Developer API reference</a></li>
     <li><a href="https://support.google.com/googleplay/android-developer/answer/6071616">Google
         Help Center</a> overview of the Google Play Developer API</li>
   </ol>
@@ -52,8 +54,6 @@
 </li>
 </ul>
 
-
-
 <p>The Google Play Developer API lets you focus on designing and developing your
 app, while spending less time and effort managing your releases, even as you
 grow to new markets.</p>
diff --git a/docs/html/google/play/dist.jd b/docs/html/google/play/dist.jd
index f1ad834..02bb42b 100644
--- a/docs/html/google/play/dist.jd
+++ b/docs/html/google/play/dist.jd
@@ -9,8 +9,8 @@
 <div class="vspace size-1">
   &nbsp;
 </div>
-<div class="layout-content-row">
-  <div class="layout-content-col span-6">
+<div class="cols">
+  <div class="col-6">
     <h4>
       Device Filtering
     </h4>
@@ -20,7 +20,7 @@
     </p><p><a href="{@docRoot}google/play/filters.html">Learn more &raquo;</a></p>
   </div>
 
-  <div class="layout-content-col span-6">
+  <div class="col-6">
     <h4>
       Multiple APK Support
     </h4>
@@ -30,8 +30,8 @@
     </p><p><a href="{@docRoot}google/play/publishing/multiple-apks.html">Learn more &raquo;</a></p>
   </div>
 
-<div class="layout-content-row">
-  <div class="layout-content-col span-6">
+<div class="cols">
+  <div class="col-6">
     <h4>
       APK Expansion files
     </h4>
@@ -42,14 +42,14 @@
     </p><a href="{@docRoot}google/play/expansion-files.html">Learn more &raquo;</a>
   </div>
 
-   <div class="layout-content-col span-6">
+   <div class="col-6">
     <h4>
       Application Licensing
     </h4>
     <p>Protect your revenue streams and integrate policies for usage into your app.
     </p><a href="{@docRoot}google/play/licensing/index.html">Learn more &raquo;</a>
   </div>
-  <div class="layout-content-col span-6">
+  <div class="col-6">
     <h4>
       Google Play Developer API
     </h4>
diff --git a/docs/html/google/play/safetynet/index.jd b/docs/html/google/play/safetynet/index.jd
deleted file mode 100644
index b728ca1..0000000
--- a/docs/html/google/play/safetynet/index.jd
+++ /dev/null
@@ -1,82 +0,0 @@
-page.title=SafetyNet for Android
-page.tags=compatibility, CTS
-header.hide=1
-
-@jd:body
-
-<div>
-
-<div>
-
-<h1 itemprop="name" style="margin-bottom:0;">
-  Android SafetyNet API
-</h1>
-
-<p itemprop="description">
-  SafetyNet provides access to Google services that help you assess the health and safety of an
-  Android device. The wide variety of Android devices and configurations can make it difficult to
-  know if your app will behave as you expect on all available devices. The SafetyNet API helps you
-  determine if your app will function properly on a device by analyzing its compatibility with the
-  Android platform specifications.
-</p>
-
-</div>
-</div>
-
-<div class="landing-docs">
-  <div class="col-6 normal-links">
-    <h3 style="clear:left">Key Developer Features</h3>
-
-<h4>
-  Device Profile Compatibility Check
-</h4>
-
-<p>
-  Check if your app is running on a device that matches a device model that has passed Android
-  compatibility testing. This analysis can help you determine if your app will work as expected on
-  the device where it is installed. The service evaluates both software and hardware
-  characteristics of the device, and may use hardware roots of trust, when available.
-</p>
-
-</div>
-
-<div class="col-6 normal-links">
-<h3 style="clear:left">
-  Getting Started
-</h3>
-
-  <h4>
-    1. Review the Terms of Service
-  </h4>
-
-  <p>
-    Use of SafetyNet is governed by specific terms of service, in addition to the <a href=
-    "https://developers.google.com/terms/" class="external-link">Google APIs Terms of Service</a>.
-    Before using this API, review the <a href="{@docRoot}google/play/safetynet/start.html#tos">
-    Additional Terms of Service</a>.
-  </p>
-
-  <h4>
-    2. Get the Google Play services SDK
-  </h4>
-
-  <p>
-    SafetyNet is part of the Google Play services platform. To get started, follow the instructions
-    for <a href="{@docRoot}google/play-services/setup.html">Setting
-    up Google Play services</a>.
-  </p>
-
-  <h4>
-    3. Read the documentation
-  </h4>
-
-  <p>
-    Learn how to use SafetyNet in your app by reading the <a href=
-    "{@docRoot}google/play/safetynet/start.html">Getting Started</a> instructions. For more
-    details on the API, see the <a href=
-    "{@docRoot}reference/com/google/android/gms/safetynet/package-summary.html">
-    SafetyNet</a> reference documentation.
-  </p>
-
-</div>
-</div>
diff --git a/docs/html/guide/index.jd b/docs/html/guide/index.jd
index cb4f65c..1c124aa 100644
--- a/docs/html/guide/index.jd
+++ b/docs/html/guide/index.jd
@@ -3,7 +3,7 @@
 @jd:body
 
 
-<div class="sidebox" style="width:220px"><!-- width to match col-4 below -->
+<div class="sidebox" style="max-width:30%"><!-- width to match col-4 below -->
 <p>To learn how apps work, start with
 <a href="{@docRoot}guide/components/fundamentals.html">App Fundamentals</a>.</p>
 <p>To begin coding right away, read <a
@@ -18,9 +18,9 @@
 the following fundamental concepts about the Android app framework:</p>
 
 
-<div class="landing-banner">
-
-<div class="col-6">
+<div class="wrap">
+  <div class="cols">
+    <div class="col-1of2">
 
 <h4>Apps provide multiple entry points</h4>
 
@@ -45,7 +45,7 @@
 </div>
 
 
-<div class="col-6">
+<div class="col-1of2">
 
 <h4>Apps adapt to different devices</h4>
 
@@ -69,7 +69,8 @@
 
 </div>
 
-</div><!-- end landing-banner -->
+</div>
+</div>
 
 
 
diff --git a/docs/html/images/cards/adwords_2x.jpg b/docs/html/images/cards/adwords_2x.jpg
new file mode 100644
index 0000000..cd83b26
--- /dev/null
+++ b/docs/html/images/cards/adwords_2x.jpg
Binary files differ
diff --git a/docs/html/images/cards/analytics-mobile_2x.jpg b/docs/html/images/cards/analytics-mobile_2x.jpg
new file mode 100644
index 0000000..e668991
--- /dev/null
+++ b/docs/html/images/cards/analytics-mobile_2x.jpg
Binary files differ
diff --git a/docs/html/images/cards/android-auto_2x.png b/docs/html/images/cards/android-auto_2x.png
new file mode 100644
index 0000000..6acdcb1
--- /dev/null
+++ b/docs/html/images/cards/android-auto_2x.png
Binary files differ
diff --git a/docs/html/images/cards/android-devices_2x.jpg b/docs/html/images/cards/android-devices_2x.jpg
new file mode 100644
index 0000000..cefff15
--- /dev/null
+++ b/docs/html/images/cards/android-devices_2x.jpg
Binary files differ
diff --git a/docs/html/images/cards/android-studio_2x.png b/docs/html/images/cards/android-studio_2x.png
new file mode 100644
index 0000000..87f9e70
--- /dev/null
+++ b/docs/html/images/cards/android-studio_2x.png
Binary files differ
diff --git a/docs/html/images/cards/android-tv_2x.png b/docs/html/images/cards/android-tv_2x.png
new file mode 100644
index 0000000..deb41a2
--- /dev/null
+++ b/docs/html/images/cards/android-tv_2x.png
Binary files differ
diff --git a/docs/html/images/cards/android-wear-apps_2x.jpg b/docs/html/images/cards/android-wear-apps_2x.jpg
new file mode 100644
index 0000000..614ef19
--- /dev/null
+++ b/docs/html/images/cards/android-wear-apps_2x.jpg
Binary files differ
diff --git a/docs/html/images/cards/android-wear-materials_2x.jpg b/docs/html/images/cards/android-wear-materials_2x.jpg
new file mode 100644
index 0000000..19a78c3
--- /dev/null
+++ b/docs/html/images/cards/android-wear-materials_2x.jpg
Binary files differ
diff --git a/docs/html/images/cards/android-wear_2x.png b/docs/html/images/cards/android-wear_2x.png
new file mode 100644
index 0000000..5d1a796
--- /dev/null
+++ b/docs/html/images/cards/android-wear_2x.png
Binary files differ
diff --git a/docs/html/images/cards/card-analytics_2x.png b/docs/html/images/cards/card-analytics_2x.png
new file mode 100644
index 0000000..da62659
--- /dev/null
+++ b/docs/html/images/cards/card-analytics_2x.png
Binary files differ
diff --git a/docs/html/images/cards/card-android-fundamentals_16x9_2x.png b/docs/html/images/cards/card-android-fundamentals_16x9_2x.png
new file mode 100644
index 0000000..64d1fa5
--- /dev/null
+++ b/docs/html/images/cards/card-android-fundamentals_16x9_2x.png
Binary files differ
diff --git a/docs/html/images/cards/card-android-studio-overview_16x9_2x.jpg b/docs/html/images/cards/card-android-studio-overview_16x9_2x.jpg
new file mode 100644
index 0000000..c0ef659
--- /dev/null
+++ b/docs/html/images/cards/card-android-studio-overview_16x9_2x.jpg
Binary files differ
diff --git a/docs/html/images/cards/card-android-work_2x.png b/docs/html/images/cards/card-android-work_2x.png
new file mode 100644
index 0000000..ac8b9280
--- /dev/null
+++ b/docs/html/images/cards/card-android-work_2x.png
Binary files differ
diff --git a/docs/html/images/cards/card-build_16x9_2x.png b/docs/html/images/cards/card-build_16x9_2x.png
new file mode 100644
index 0000000..1fdbf89
--- /dev/null
+++ b/docs/html/images/cards/card-build_16x9_2x.png
Binary files differ
diff --git a/docs/html/images/cards/card-cardboard_2x.png b/docs/html/images/cards/card-cardboard_2x.png
new file mode 100644
index 0000000..72903f9
--- /dev/null
+++ b/docs/html/images/cards/card-cardboard_2x.png
Binary files differ
diff --git a/docs/html/images/cards/card-cast_2x.jpg b/docs/html/images/cards/card-cast_2x.jpg
new file mode 100644
index 0000000..699048d
--- /dev/null
+++ b/docs/html/images/cards/card-cast_2x.jpg
Binary files differ
diff --git a/docs/html/images/cards/card-download_16-9_2x.png b/docs/html/images/cards/card-download_16-9_2x.png
new file mode 100644
index 0000000..06642b4
--- /dev/null
+++ b/docs/html/images/cards/card-download_16-9_2x.png
Binary files differ
diff --git a/docs/html/images/cards/card-earn_16x9_2x.png b/docs/html/images/cards/card-earn_16x9_2x.png
new file mode 100644
index 0000000..1b96c83
--- /dev/null
+++ b/docs/html/images/cards/card-earn_16x9_2x.png
Binary files differ
diff --git a/docs/html/images/cards/card-engage_16x9_2x.png b/docs/html/images/cards/card-engage_16x9_2x.png
new file mode 100644
index 0000000..334420b
--- /dev/null
+++ b/docs/html/images/cards/card-engage_16x9_2x.png
Binary files differ
diff --git a/docs/html/images/cards/card-g-play-services_16x9_2x.jpg b/docs/html/images/cards/card-g-play-services_16x9_2x.jpg
new file mode 100644
index 0000000..a2805a6
--- /dev/null
+++ b/docs/html/images/cards/card-g-play-services_16x9_2x.jpg
Binary files differ
diff --git a/docs/html/images/cards/card-key-changes_16-9_2x.png b/docs/html/images/cards/card-key-changes_16-9_2x.png
new file mode 100644
index 0000000..1629b4f
--- /dev/null
+++ b/docs/html/images/cards/card-key-changes_16-9_2x.png
Binary files differ
diff --git a/docs/html/images/cards/card-material-icons-16x9_2x.jpg b/docs/html/images/cards/card-material-icons-16x9_2x.jpg
new file mode 100644
index 0000000..016932c
--- /dev/null
+++ b/docs/html/images/cards/card-material-icons-16x9_2x.jpg
Binary files differ
diff --git a/docs/html/images/cards/card-new_16x9_2x.png b/docs/html/images/cards/card-new_16x9_2x.png
new file mode 100644
index 0000000..270f4a3
--- /dev/null
+++ b/docs/html/images/cards/card-new_16x9_2x.png
Binary files differ
diff --git a/docs/html/images/cards/card-places_2x.png b/docs/html/images/cards/card-places_2x.png
new file mode 100644
index 0000000..a9b468c
--- /dev/null
+++ b/docs/html/images/cards/card-places_2x.png
Binary files differ
diff --git a/docs/html/images/cards/card-preview_16-9_2x.png b/docs/html/images/cards/card-preview_16-9_2x.png
new file mode 100644
index 0000000..dd80f6a
--- /dev/null
+++ b/docs/html/images/cards/card-preview_16-9_2x.png
Binary files differ
diff --git a/docs/html/images/cards/card-set-up_16-9_2x.png b/docs/html/images/cards/card-set-up_16-9_2x.png
new file mode 100644
index 0000000..0283801e
--- /dev/null
+++ b/docs/html/images/cards/card-set-up_16-9_2x.png
Binary files differ
diff --git a/docs/html/images/cards/card-support_16-9_2x.png b/docs/html/images/cards/card-support_16-9_2x.png
new file mode 100644
index 0000000..08b3290
--- /dev/null
+++ b/docs/html/images/cards/card-support_16-9_2x.png
Binary files differ
diff --git a/docs/html/images/cards/card-ubiquitous-computing_16x9_2x.png b/docs/html/images/cards/card-ubiquitous-computing_16x9_2x.png
new file mode 100644
index 0000000..5edff62
--- /dev/null
+++ b/docs/html/images/cards/card-ubiquitous-computing_16x9_2x.png
Binary files differ
diff --git a/docs/html/images/cards/card-using-code-templates_16x9_2x.png b/docs/html/images/cards/card-using-code-templates_16x9_2x.png
new file mode 100644
index 0000000..1496306
--- /dev/null
+++ b/docs/html/images/cards/card-using-code-templates_16x9_2x.png
Binary files differ
diff --git a/docs/html/images/cards/card-youtube_2x.png b/docs/html/images/cards/card-youtube_2x.png
new file mode 100644
index 0000000..28bdd89
--- /dev/null
+++ b/docs/html/images/cards/card-youtube_2x.png
Binary files differ
diff --git a/docs/html/images/cards/cloud-platform_2x.png b/docs/html/images/cards/cloud-platform_2x.png
new file mode 100644
index 0000000..d3c203d
--- /dev/null
+++ b/docs/html/images/cards/cloud-platform_2x.png
Binary files differ
diff --git a/docs/html/images/cards/course-nanodegree-lg_2x.jpg b/docs/html/images/cards/course-nanodegree-lg_2x.jpg
new file mode 100644
index 0000000..c32769b
--- /dev/null
+++ b/docs/html/images/cards/course-nanodegree-lg_2x.jpg
Binary files differ
diff --git a/docs/html/images/cards/course-nanodegree_2x.jpg b/docs/html/images/cards/course-nanodegree_2x.jpg
new file mode 100644
index 0000000..db3702b
--- /dev/null
+++ b/docs/html/images/cards/course-nanodegree_2x.jpg
Binary files differ
diff --git a/docs/html/images/cards/course-ud825.png b/docs/html/images/cards/course-ud825.png
new file mode 100644
index 0000000..77f98b5
--- /dev/null
+++ b/docs/html/images/cards/course-ud825.png
Binary files differ
diff --git a/docs/html/images/cards/course-ud837_2x.jpg b/docs/html/images/cards/course-ud837_2x.jpg
new file mode 100644
index 0000000..2dfcabf
--- /dev/null
+++ b/docs/html/images/cards/course-ud837_2x.jpg
Binary files differ
diff --git a/docs/html/images/cards/course-ud849.jpg b/docs/html/images/cards/course-ud849.jpg
new file mode 100644
index 0000000..41b7ecf
--- /dev/null
+++ b/docs/html/images/cards/course-ud849.jpg
Binary files differ
diff --git a/docs/html/images/cards/course-ud853.jpg b/docs/html/images/cards/course-ud853.jpg
new file mode 100644
index 0000000..94adfb0
--- /dev/null
+++ b/docs/html/images/cards/course-ud853.jpg
Binary files differ
diff --git a/docs/html/images/cards/course-ud855_2x.jpg b/docs/html/images/cards/course-ud855_2x.jpg
new file mode 100644
index 0000000..bc9c3ee
--- /dev/null
+++ b/docs/html/images/cards/course-ud855_2x.jpg
Binary files differ
diff --git a/docs/html/images/cards/course-ud862_2x.jpg b/docs/html/images/cards/course-ud862_2x.jpg
new file mode 100644
index 0000000..d3e77ff
--- /dev/null
+++ b/docs/html/images/cards/course-ud862_2x.jpg
Binary files differ
diff --git a/docs/html/images/cards/course-ud867_2x.jpg b/docs/html/images/cards/course-ud867_2x.jpg
new file mode 100644
index 0000000..2467efb
--- /dev/null
+++ b/docs/html/images/cards/course-ud867_2x.jpg
Binary files differ
diff --git a/docs/html/images/cards/course-ud875_2x.jpg b/docs/html/images/cards/course-ud875_2x.jpg
new file mode 100644
index 0000000..b7fc8cc
--- /dev/null
+++ b/docs/html/images/cards/course-ud875_2x.jpg
Binary files differ
diff --git a/docs/html/images/cards/course-ud876_2x.jpg b/docs/html/images/cards/course-ud876_2x.jpg
new file mode 100644
index 0000000..5f27246
--- /dev/null
+++ b/docs/html/images/cards/course-ud876_2x.jpg
Binary files differ
diff --git a/docs/html/images/cards/design-creative-vision_2x.jpg b/docs/html/images/cards/design-creative-vision_2x.jpg
new file mode 100644
index 0000000..9c7dde3
--- /dev/null
+++ b/docs/html/images/cards/design-creative-vision_2x.jpg
Binary files differ
diff --git a/docs/html/images/cards/design-material-for-android_2x.jpg b/docs/html/images/cards/design-material-for-android_2x.jpg
new file mode 100644
index 0000000..e47594a
--- /dev/null
+++ b/docs/html/images/cards/design-material-for-android_2x.jpg
Binary files differ
diff --git a/docs/html/images/cards/design-new-in-android_2x.jpg b/docs/html/images/cards/design-new-in-android_2x.jpg
new file mode 100644
index 0000000..3bdd542
--- /dev/null
+++ b/docs/html/images/cards/design-new-in-android_2x.jpg
Binary files differ
diff --git a/docs/html/images/cards/design-pure-android_2x.png b/docs/html/images/cards/design-pure-android_2x.png
new file mode 100644
index 0000000..94758f7
--- /dev/null
+++ b/docs/html/images/cards/design-pure-android_2x.png
Binary files differ
diff --git a/docs/html/images/cards/dev-console_2x.jpg b/docs/html/images/cards/dev-console_2x.jpg
new file mode 100644
index 0000000..f2d10eb
--- /dev/null
+++ b/docs/html/images/cards/dev-console_2x.jpg
Binary files differ
diff --git a/docs/html/images/cards/google-play_2x.png b/docs/html/images/cards/google-play_2x.png
new file mode 100644
index 0000000..8680639
--- /dev/null
+++ b/docs/html/images/cards/google-play_2x.png
Binary files differ
diff --git a/docs/html/images/cards/google-search_2x.png b/docs/html/images/cards/google-search_2x.png
new file mode 100644
index 0000000..2564121
--- /dev/null
+++ b/docs/html/images/cards/google-search_2x.png
Binary files differ
diff --git a/docs/html/images/cards/google-sign-in_2x.png b/docs/html/images/cards/google-sign-in_2x.png
new file mode 100644
index 0000000..60078a7
--- /dev/null
+++ b/docs/html/images/cards/google-sign-in_2x.png
Binary files differ
diff --git a/docs/html/images/cards/material-animation_2x.png b/docs/html/images/cards/material-animation_2x.png
new file mode 100644
index 0000000..79315e4
--- /dev/null
+++ b/docs/html/images/cards/material-animation_2x.png
Binary files differ
diff --git a/docs/html/images/cards/material-color-palette_2x.jpg b/docs/html/images/cards/material-color-palette_2x.jpg
new file mode 100644
index 0000000..bae8d07
--- /dev/null
+++ b/docs/html/images/cards/material-color-palette_2x.jpg
Binary files differ
diff --git a/docs/html/images/cards/material-components_2x.jpg b/docs/html/images/cards/material-components_2x.jpg
new file mode 100644
index 0000000..7ac1012
--- /dev/null
+++ b/docs/html/images/cards/material-components_2x.jpg
Binary files differ
diff --git a/docs/html/images/cards/material-layout-template_2x.jpg b/docs/html/images/cards/material-layout-template_2x.jpg
new file mode 100644
index 0000000..d2fa3c5
--- /dev/null
+++ b/docs/html/images/cards/material-layout-template_2x.jpg
Binary files differ
diff --git a/docs/html/images/cards/material-layout_2x.png b/docs/html/images/cards/material-layout_2x.png
new file mode 100644
index 0000000..6c5dca1
--- /dev/null
+++ b/docs/html/images/cards/material-layout_2x.png
Binary files differ
diff --git a/docs/html/images/cards/material-patterns_2x.png b/docs/html/images/cards/material-patterns_2x.png
new file mode 100644
index 0000000..8e8d8aa
--- /dev/null
+++ b/docs/html/images/cards/material-patterns_2x.png
Binary files differ
diff --git a/docs/html/images/cards/material-sticker-sheet_2x.jpg b/docs/html/images/cards/material-sticker-sheet_2x.jpg
new file mode 100644
index 0000000..8e9f3f7c
--- /dev/null
+++ b/docs/html/images/cards/material-sticker-sheet_2x.jpg
Binary files differ
diff --git a/docs/html/images/cards/material-style_2x.jpg b/docs/html/images/cards/material-style_2x.jpg
new file mode 100644
index 0000000..38ae540
--- /dev/null
+++ b/docs/html/images/cards/material-style_2x.jpg
Binary files differ
diff --git a/docs/html/images/cards/material-typography_2x.jpg b/docs/html/images/cards/material-typography_2x.jpg
new file mode 100644
index 0000000..537db8e
--- /dev/null
+++ b/docs/html/images/cards/material-typography_2x.jpg
Binary files differ
diff --git a/docs/html/images/cards/material-usability_2x.png b/docs/html/images/cards/material-usability_2x.png
new file mode 100644
index 0000000..468e1c8
--- /dev/null
+++ b/docs/html/images/cards/material-usability_2x.png
Binary files differ
diff --git a/docs/html/images/cards/material_2x.png b/docs/html/images/cards/material_2x.png
new file mode 100644
index 0000000..e759d9f
--- /dev/null
+++ b/docs/html/images/cards/material_2x.png
Binary files differ
diff --git a/docs/html/images/cards/program-edu_2x.jpg b/docs/html/images/cards/program-edu_2x.jpg
new file mode 100644
index 0000000..4430dfd
--- /dev/null
+++ b/docs/html/images/cards/program-edu_2x.jpg
Binary files differ
diff --git a/docs/html/images/cards/samples-new_2x.png b/docs/html/images/cards/samples-new_2x.png
new file mode 100644
index 0000000..270f4a3
--- /dev/null
+++ b/docs/html/images/cards/samples-new_2x.png
Binary files differ
diff --git a/docs/html/images/develop/hero-android-studio-on-device.png b/docs/html/images/develop/hero-android-studio-on-device.png
new file mode 100644
index 0000000..eac0e1f
--- /dev/null
+++ b/docs/html/images/develop/hero-android-studio-on-device.png
Binary files differ
diff --git a/docs/html/images/develop/hero_image_studio5.png b/docs/html/images/develop/hero_image_studio5.png
new file mode 100644
index 0000000..08fa57c
--- /dev/null
+++ b/docs/html/images/develop/hero_image_studio5.png
Binary files differ
diff --git a/docs/html/images/develop/hero_image_studio5_2x.png b/docs/html/images/develop/hero_image_studio5_2x.png
new file mode 100644
index 0000000..f119749
--- /dev/null
+++ b/docs/html/images/develop/hero_image_studio5_2x.png
Binary files differ
diff --git a/docs/html/images/distribute/android-work.jpg b/docs/html/images/distribute/android-work.jpg
new file mode 100644
index 0000000..91f742b
--- /dev/null
+++ b/docs/html/images/distribute/android-work.jpg
Binary files differ
diff --git a/docs/html/images/distribute/app-indexing-deep-links.png b/docs/html/images/distribute/app-indexing-deep-links.png
new file mode 100644
index 0000000..8ea8071
--- /dev/null
+++ b/docs/html/images/distribute/app-indexing-deep-links.png
Binary files differ
diff --git a/docs/html/images/distribute/appindexing.gif b/docs/html/images/distribute/appindexing.gif
new file mode 100644
index 0000000..6015d14
--- /dev/null
+++ b/docs/html/images/distribute/appindexing.gif
Binary files differ
diff --git a/docs/html/images/distribute/cardboard.jpg b/docs/html/images/distribute/cardboard.jpg
new file mode 100644
index 0000000..36b39db
--- /dev/null
+++ b/docs/html/images/distribute/cardboard.jpg
Binary files differ
diff --git a/docs/html/images/distribute/cast.jpg b/docs/html/images/distribute/cast.jpg
new file mode 100644
index 0000000..d5e4a32
--- /dev/null
+++ b/docs/html/images/distribute/cast.jpg
Binary files differ
diff --git a/docs/html/images/distribute/engage-intents.png b/docs/html/images/distribute/engage-intents.png
new file mode 100644
index 0000000..2889c08
--- /dev/null
+++ b/docs/html/images/distribute/engage-intents.png
Binary files differ
diff --git a/docs/html/images/distribute/google-now-engagement.png b/docs/html/images/distribute/google-now-engagement.png
new file mode 100644
index 0000000..416247b
--- /dev/null
+++ b/docs/html/images/distribute/google-now-engagement.png
Binary files differ
diff --git a/docs/html/images/distribute/google-play-bg.jpg b/docs/html/images/distribute/google-play-bg.jpg
new file mode 100644
index 0000000..effd422
--- /dev/null
+++ b/docs/html/images/distribute/google-play-bg.jpg
Binary files differ
diff --git a/docs/html/images/distribute/gpfw_business.png b/docs/html/images/distribute/gpfw_business.png
new file mode 100644
index 0000000..d395b4e
--- /dev/null
+++ b/docs/html/images/distribute/gpfw_business.png
Binary files differ
diff --git a/docs/html/images/distribute/gpfw_developer.png b/docs/html/images/distribute/gpfw_developer.png
new file mode 100644
index 0000000..c0f0d26
--- /dev/null
+++ b/docs/html/images/distribute/gpfw_developer.png
Binary files differ
diff --git a/docs/html/images/distribute/hero-family.jpg b/docs/html/images/distribute/hero-family.jpg
new file mode 100644
index 0000000..6e467a5
--- /dev/null
+++ b/docs/html/images/distribute/hero-family.jpg
Binary files differ
diff --git a/docs/html/images/distribute/hero-g-play-guidebooks_2x.png b/docs/html/images/distribute/hero-g-play-guidebooks_2x.png
new file mode 100644
index 0000000..3dfda18
--- /dev/null
+++ b/docs/html/images/distribute/hero-g-play-guidebooks_2x.png
Binary files differ
diff --git a/docs/html/images/distribute/hero-ginlemon.jpg b/docs/html/images/distribute/hero-ginlemon.jpg
new file mode 100644
index 0000000..11837b3
--- /dev/null
+++ b/docs/html/images/distribute/hero-ginlemon.jpg
Binary files differ
diff --git a/docs/html/images/distribute/hero-haystack.jpg b/docs/html/images/distribute/hero-haystack.jpg
new file mode 100644
index 0000000..36b6d9f
--- /dev/null
+++ b/docs/html/images/distribute/hero-haystack.jpg
Binary files differ
diff --git a/docs/html/images/distribute/hero-jelly-button.jpg b/docs/html/images/distribute/hero-jelly-button.jpg
new file mode 100644
index 0000000..032755b
--- /dev/null
+++ b/docs/html/images/distribute/hero-jelly-button.jpg
Binary files differ
diff --git a/docs/html/images/distribute/hero-outfit7.jpg b/docs/html/images/distribute/hero-outfit7.jpg
new file mode 100644
index 0000000..a013417a
--- /dev/null
+++ b/docs/html/images/distribute/hero-outfit7.jpg
Binary files differ
diff --git a/docs/html/images/distribute/house-ads.png b/docs/html/images/distribute/house-ads.png
new file mode 100644
index 0000000..f4df870
--- /dev/null
+++ b/docs/html/images/distribute/house-ads.png
Binary files differ
diff --git a/docs/html/images/distribute/more-app-engagement.png b/docs/html/images/distribute/more-app-engagement.png
new file mode 100644
index 0000000..31cbede
--- /dev/null
+++ b/docs/html/images/distribute/more-app-engagement.png
Binary files differ
diff --git a/docs/html/images/distribute/music-action.png b/docs/html/images/distribute/music-action.png
new file mode 100644
index 0000000..24d6dc8
--- /dev/null
+++ b/docs/html/images/distribute/music-action.png
Binary files differ
diff --git a/docs/html/images/distribute/ota-installs.gif b/docs/html/images/distribute/ota-installs.gif
new file mode 100644
index 0000000..85e40da
--- /dev/null
+++ b/docs/html/images/distribute/ota-installs.gif
Binary files differ
diff --git a/docs/html/images/distribute/promote-ads-apps.png b/docs/html/images/distribute/promote-ads-apps.png
new file mode 100644
index 0000000..9009a37
--- /dev/null
+++ b/docs/html/images/distribute/promote-ads-apps.png
Binary files differ
diff --git a/docs/html/images/distribute/promote-ads-web.png b/docs/html/images/distribute/promote-ads-web.png
new file mode 100644
index 0000000..2f9630e
--- /dev/null
+++ b/docs/html/images/distribute/promote-ads-web.png
Binary files differ
diff --git a/docs/html/images/distribute/promote_ads.png b/docs/html/images/distribute/promote_ads.png
new file mode 100644
index 0000000..38517aa
--- /dev/null
+++ b/docs/html/images/distribute/promote_ads.png
Binary files differ
diff --git a/docs/html/images/distribute/promote_ads_apps.png b/docs/html/images/distribute/promote_ads_apps.png
new file mode 100644
index 0000000..2f57865
--- /dev/null
+++ b/docs/html/images/distribute/promote_ads_apps.png
Binary files differ
diff --git a/docs/html/images/distribute/promote_ads_gmail.png b/docs/html/images/distribute/promote_ads_gmail.png
new file mode 100644
index 0000000..1d21b4a
--- /dev/null
+++ b/docs/html/images/distribute/promote_ads_gmail.png
Binary files differ
diff --git a/docs/html/images/distribute/promote_ads_inapp.png b/docs/html/images/distribute/promote_ads_inapp.png
new file mode 100644
index 0000000..8aeee57
--- /dev/null
+++ b/docs/html/images/distribute/promote_ads_inapp.png
Binary files differ
diff --git a/docs/html/images/distribute/promote_ads_play.png b/docs/html/images/distribute/promote_ads_play.png
new file mode 100644
index 0000000..1cf51b2
--- /dev/null
+++ b/docs/html/images/distribute/promote_ads_play.png
Binary files differ
diff --git a/docs/html/images/distribute/promote_ads_search.png b/docs/html/images/distribute/promote_ads_search.png
new file mode 100644
index 0000000..27c0b38
--- /dev/null
+++ b/docs/html/images/distribute/promote_ads_search.png
Binary files differ
diff --git a/docs/html/images/distribute/promote_ads_web.png b/docs/html/images/distribute/promote_ads_web.png
new file mode 100644
index 0000000..588a3d4
--- /dev/null
+++ b/docs/html/images/distribute/promote_ads_web.png
Binary files differ
diff --git a/docs/html/images/distribute/promote_ads_youtube.png b/docs/html/images/distribute/promote_ads_youtube.png
new file mode 100644
index 0000000..e88a796
--- /dev/null
+++ b/docs/html/images/distribute/promote_ads_youtube.png
Binary files differ
diff --git a/docs/html/images/distribute/signin-apps.png b/docs/html/images/distribute/signin-apps.png
new file mode 100644
index 0000000..9891acd
--- /dev/null
+++ b/docs/html/images/distribute/signin-apps.png
Binary files differ
diff --git a/docs/html/images/distribute/signin-seamless.png b/docs/html/images/distribute/signin-seamless.png
new file mode 100644
index 0000000..01b9d73
--- /dev/null
+++ b/docs/html/images/distribute/signin-seamless.png
Binary files differ
diff --git a/docs/html/images/distribute/signin-secure.png b/docs/html/images/distribute/signin-secure.png
new file mode 100644
index 0000000..3baad23
--- /dev/null
+++ b/docs/html/images/distribute/signin-secure.png
Binary files differ
diff --git a/docs/html/images/distribute/voice-actions-engagement.png b/docs/html/images/distribute/voice-actions-engagement.png
new file mode 100644
index 0000000..63a2605
--- /dev/null
+++ b/docs/html/images/distribute/voice-actions-engagement.png
Binary files differ
diff --git a/docs/html/images/distribute/youtube-card-example.png b/docs/html/images/distribute/youtube-card-example.png
new file mode 100644
index 0000000..e5d77f9
--- /dev/null
+++ b/docs/html/images/distribute/youtube-card-example.png
Binary files differ
diff --git a/docs/html/images/home/devices-hero_620px_2x.png b/docs/html/images/home/devices-hero_620px_2x.png
new file mode 100644
index 0000000..273706e
--- /dev/null
+++ b/docs/html/images/home/devices-hero_620px_2x.png
Binary files differ
diff --git a/docs/html/images/home/hero-lollipop_2x.png b/docs/html/images/home/hero-lollipop_2x.png
new file mode 100644
index 0000000..6f41e13
--- /dev/null
+++ b/docs/html/images/home/hero-lollipop_2x.png
Binary files differ
diff --git a/docs/html/images/play_dev.jpg b/docs/html/images/play_dev.jpg
index 6aae165..92513b7 100644
--- a/docs/html/images/play_dev.jpg
+++ b/docs/html/images/play_dev.jpg
Binary files differ
diff --git a/docs/html/images/play_dev_old.jpg b/docs/html/images/play_dev_old.jpg
new file mode 100644
index 0000000..6aae165
--- /dev/null
+++ b/docs/html/images/play_dev_old.jpg
Binary files differ
diff --git a/docs/html/images/versions/notification-headsup.png b/docs/html/images/versions/notification-headsup.png
index 7c374c8..623b225 100644
--- a/docs/html/images/versions/notification-headsup.png
+++ b/docs/html/images/versions/notification-headsup.png
Binary files differ
diff --git a/docs/html/images/versions/rivalknights.png b/docs/html/images/versions/rivalknights.png
index 6b467ef..6137fc4 100644
--- a/docs/html/images/versions/rivalknights.png
+++ b/docs/html/images/versions/rivalknights.png
Binary files differ
diff --git a/docs/html/index.jd b/docs/html/index.jd
index 2838959..70274eb 100644
--- a/docs/html/index.jd
+++ b/docs/html/index.jd
@@ -1,101 +1,85 @@
 fullpage=true
-page.viewport_width=970
 excludeFromSuggestions=true
 page.metaDescription=The official site for Android developers. Provides the Android SDK and documentation for app developers and designers.
 page.customHeadTag=<meta name="google-site-verification" content="sa-bIAI6GKvct3f61-WpRguHq-aNjtF7xJjMTSi79as" />
 
 @jd:body
 
-<div class="home-new-carousel-1">
-  <div class="fullscreen-carousel-content">
-    <div class="vcenter">
-      <div class="wrap clearfix">
+<!-- <div class="dac-hero-carousel" data-carousel-query="collection:index/carousel">
+</div> -->
 
-        <div class="static resource-flow-layout wrap col-16">
-          <div class="resource resource-card resource-card-18x6">
+<article class="dac-expand dac-hero dac-invert active" style="background-color: rgb(38, 50, 56);">
+<a class="dac-hero-carousel-action" href="{@docRoot}preview/index.html">
+  <div class="wrap" style="max-width:1100px;">
+    <div class="cols dac-hero-content">
+      <div class="col-10of16 col-push-6of16 dac-hero-figure">
+        <img src="{@docRoot}images/home/devices-hero_620px_2x.png">
+      </div>
+      <div class="col-6of16 col-pull-10of16">
+        <div class="dac-hero-tag"></div>
 
-      <div class="landing-section-header">
-            <div class="col-10"><img src="{@docRoot}images/home/l-hero_2x.png"
-                 srcset="{@docRoot}images/home/l-hero.png 1x, {@docRoot}images/home/l-hero_2x.png 2x"
-                 width="510" style="margin:20px 30px 0 30px"></div>
-            <div class="col-5" style=" margin-top:70px ">
-            <h3 stye="font-weight:300;">Android 5.0 Lollipop</h3>
-            <p>The Android 5.0 update adds a variety of new
-            features for your apps, such as notifications on the lock screen, an all-new camera API,
-            OpenGL ES 3.1, the new Material design interface, and much more.</p>
-            <a href="{@docRoot}about/versions/lollipop.html" class="landing-button landing-primary">Learn More</a>
-            </div>
-          </div>
-          </div>
-        </div>
-       <h2>&nbsp;</h2>
-        <div style="margin-top:20px;height:115px" class="resource-widget resource-flow-layout wrap col-16
-        no-section" data-query="collection:index/primary" data-resourcestyle="card"
-        data-sortorder="-timestamp" data-maxresults="3" data-cardsizes="6x2,6x2,6x2"></div> <!-- end .resource-widget -->
-      </div> <!-- end .wrap -->
-    </div> <!-- end .vcenter -->
-  </div> <!-- end .fullscreen-carousel-content -->
-</div> <!-- end .fullscreen-carousel -->
+        <h1 class="dac-hero-title">Android M Developer Preview</h1>
+        <p class="dac-hero-description">Get your apps ready for the next version
+        of Android. Test on Nexus 5, 6, 9, and Player. </p>
 
-<div class="actions-bar" style="margin-top:20px">
-  <div class="wrap">
+        <a class="dac-hero-cta" href="{@docRoot}preview/index.html">
+          <span class="dac-sprite dac-auto-chevron"></span>
+          Learn more
+        </a>
+      </div>
+    </div>
+  </div>
+</a>
+</article>
+
+<div class="actions-bar dac-expand dac-invert">
+  <div class="wrap dac-offset-parent">
+    <a class="dac-fab dac-scroll-button" data-scroll-button href="#build-apps">
+      <i class="dac-sprite dac-arrow-down-gray"></i>
+    </a>
     <div class="actions">
-      <div><a href="{@docRoot}sdk/index.html">Get the SDK</a></div>
-      <div><a href="{@docRoot}samples/index.html">Browse Samples</a></div>
-      <div><a href="//www.youtube.com/user/androiddevelopers">Watch Videos</a></div>
-      <div><a href="{@docRoot}distribute/googleplay/developer-console.html">Manage Your Apps</a></div>
+      <div><a href="{@docRoot}sdk/index.html">
+        <span class="dac-sprite dac-auto-chevron-large"></span>
+        Get the SDK
+      </a></div>
+      <div><a href="{@docRoot}samples/index.html">
+        <span class="dac-sprite dac-auto-chevron-large"></span>
+        Browse Samples
+      </a></div>
+      <div><a href="//www.youtube.com/user/androiddevelopers">
+        <span class="dac-sprite dac-auto-chevron-large"></span>
+        Watch Videos
+      </a></div>
     </div><!-- end .actions -->
   </div><!-- end .wrap -->
 </div><!-- end .actions-bar -->
 
 
 
-<div class="landing-rest-of-page">
-  <div class="landing-section">
-    <div class="wrap">
-      <div class="landing-section-header">
+<section class="dac-section dac-section-light" id="build-apps"><div class="wrap">
+  <h1 class="dac-section-title">Build Beautiful Apps</h1>
+  <div class="dac-section-subtitle">
+    Resources to get you started with designing and developing for Android.
+  </div>
+  <div class="resource-widget resource-flow-layout col-16"
+       data-query="collection:index/primary"
+       data-cardSizes="6x6"
+       data-maxResults="3"></div>
+</div></section>
 
-            <div class="landing-h1" style="margin-top:0px">Build for a Multi-Screen World</div>
-        <div class="landing-subhead" style="margin-top: 20px;">
-          Android runs on hundreds of millions of handheld devices around the world, <br>
-          and it now supports these exciting, new form-factors.
-        </div>
-      </div>
-      <div class="landing-body" style="margin-top: 50px;">
-        <div class="landing-breakout cols">
-          <div class="col-3-wide">
-              <img src="{@docRoot}images/home/wear-wordmark.png">
-              <img src="{@docRoot}images/home/wear.png">
-              <p class="landing-small">
-                Provide information on-the-go for your users, whenever they need it.
-            </p>
-            <p class="landing-small">
-              <a href="{@docRoot}wear/index.html">Learn about Android Wear</a>
-            </p>
-          </div>
-          <div class="col-3-wide">
-              <img src="{@docRoot}images/home/tv-wordmark.png">
-             <img src="{@docRoot}images/home/tv.png">
-              <p class="landing-small">
-                Build your apps for the big screen and bring your content to life.
-              </p>
-            <p class="landing-small">
-              <a href="{@docRoot}tv/index.html">Learn about Android TV</a>
+<div class="dac-hero-carousel" data-carousel-query="collection:distribute/landing/carousel">
+</div>
 
-            </p>
-          </div>
-          <div class="col-3-wide">
-              <img src="{@docRoot}images/home/auto-wordmark.png">
-              <img src="{@docRoot}images/home/auto.png">
-              <p class="landing-small">
-                Extend your music apps to automobile
-                entertainment systems.
-             </p>
-            <p class="landing-small">
-              <a href="{@docRoot}auto/index.html">Learn about Android Auto</a>
-            </p>
-          </div>
-        </div>
-      </div>
-    </div>  <!-- end .wrap -->
-  </div> <!-- end .landing-section -->
\ No newline at end of file
+<section class="dac-section dac-gray"><div class="wrap">
+  <div class="cols"><div class="col-10of12 col-push-1of12">
+    <h1 class="dac-section-title">Build for a Multi-Screen World</h1>
+    <div class="dac-section-subtitle">
+      Android runs on billions of handheld devices around the world,
+      and it now supports these exciting, new form-factors.
+    </div>
+  </div></div>
+  <div class="resource-widget resource-flow-layout col-16"
+       data-query="collection:index/multiscreen"
+       data-cardSizes="6x6"
+       data-maxResults="3"></div>
+</div></section>
diff --git a/docs/html/jd_collections.js b/docs/html/jd_collections.js
index e2d0eb9..421f87a 100644
--- a/docs/html/jd_collections.js
+++ b/docs/html/jd_collections.js
@@ -1,4 +1,10 @@
 var RESOURCE_COLLECTIONS = {
+  "index/carousel": {
+    "title": "",
+    "resources": [
+      "about/versions/lollipop.html"
+    ]
+  },
   "index/primary": {
     "title": "",
     "resources": [
@@ -7,6 +13,14 @@
       "sdk/index.html"
     ]
   },
+  "index/multiscreen": {
+    "title": "",
+    "resources": [
+      "wear/index.html",
+      "tv/index.html",
+      "auto/index.html"
+    ]
+  },
   "index/primary/zhcn": {
     "title": "",
     "resources": [
@@ -15,6 +29,173 @@
       "intl/zh-cn/distribute/tools/localization-checklist.html"
     ]
   },
+  "design/landing/latest": {
+    "title": "",
+    "resources": [
+      "http://www.youtube.com/watch?v=p4gmvHyuZzw",
+      "http://www.youtube.com/watch?v=YaG_ljfzeUw",
+      "http://www.youtube.com/watch?v=XOcCOBe8PTc"
+    ]
+  },
+  "design/landing/materialdesign": {
+    "title": "",
+    "resources": [
+      "https://www.google.com/design/spec/animation/",
+      "https://www.google.com/design/spec/style/",
+      "https://www.google.com/design/spec/layout/",
+      "https://www.google.com/design/spec/components/",
+      "https://www.google.com/design/spec/patterns/",
+      "https://www.google.com/design/spec/usability/"
+    ]
+  },
+  "design/landing/pureandroid": {
+    "title": "",
+    "resources": [
+      "design/get-started/creative-vision.html",
+      "design/material/index.html",
+      "training/material/index.html",
+      "design/patterns/pure-android.html",
+      "design/patterns/new.html",
+      "design/devices.html"
+    ]
+  },
+  "design/landing/resources": {
+    "title": "",
+    "resources": [
+      "https://www.google.com/design/spec/resources/color-palettes.html",
+      "https://www.google.com/design/spec/resources/layout-templates.html",
+      "https://www.google.com/design/spec/resources/sticker-sheets-icons.html",
+      "https://www.google.com/design/spec/resources/roboto-noto-fonts.html",
+      "https://www.google.com/design/icons/index.html",
+      "design/downloads/index.html#Wear"
+    ]
+  },
+  "develop/landing/mainlinks": {
+    "title": "",
+    "resources": [
+      "tools/studio/index.html",
+      "samples/new/index.html",
+      "tools/projects/templates.html"
+    ]
+  },
+  "develop/landing/latest": {
+    "title": "",
+    "resources": [
+      "http://android-developers.blogspot.com/2015/04/new-android-code-samples.html",
+      "http://android-developers.blogspot.com/2015/04/android-support-library-221.html",
+      "http://android-developers.blogspot.com/2015/03/a-new-reference-app-for-multi-device.html"
+    ]
+  },
+  "develop/landing/performance": {
+    "title": "",
+    "resources": [
+      "http://www.youtube.com/watch?v=fEEulSk1kNY",
+      "http://www.youtube.com/watch?v=-3ry8PxcJJA",
+      "http://www.youtube.com/watch?v=_kKTGK-Cb_4"
+    ]
+  },
+  "develop/landing/buildwithgoogle": {
+    "title": "",
+    "resources": [
+    ]
+  },
+  "develop/landing/ubicomp": {
+    "title": "",
+    "resources": [
+      "https://www.youtube.com/watch?v=AK38PJZmIW8&list=PLWz5rJ2EKKc-kIrPiq098QH9dOle-fLef",
+      "https://www.youtube.com/watch?v=6K_jxccHv5M&index=1&list=PLOU2XLYxmsILFBfx66ens76VMLMEPJAB0",
+      "https://www.youtube.com/watch?v=ctiaVxgclsg&list=PLWz5rJ2EKKc9BdE_PSLNIGjXXr3h_orXM"
+    ]
+  },
+  "develop/landing/tools": {
+    "title": "",
+    "resources": [
+      "https://www.youtube.com/watch?v=K2dodTXARqc&list=PLWz5rJ2EKKc8I9gHTMh5yKkwRRGE8BjbQ",
+      "https://www.youtube.com/watch?v=3PIc-DuEU2s&list=PLWz5rJ2EKKc9e0d55YHgJFHXNZbGHEXJX",
+      "https://www.youtube.com/watch?v=cD7NPxuuXYY&list=PLWz5rJ2EKKc8I9gHTMh5yKkwRRGE8BjbQ",
+      "https://www.youtube.com/watch?v=JLLnhwtDoHw&list=PLWz5rJ2EKKc8I9gHTMh5yKkwRRGE8BjbQ",
+      "https://www.youtube.com/watch?v=2I6fuD20qlY&list=PLWz5rJ2EKKc8I9gHTMh5yKkwRRGE8BjbQ",
+      "https://www.youtube.com/watch?v=5Be2mJzP-Uw&list=PLWz5rJ2EKKc9e0d55YHgJFHXNZbGHEXJX"
+    ]
+  },
+  "google/landing/services": {
+    "title": "",
+    "resources": [
+      "https://developers.google.com/analytics/devguides/collection/android/",
+      "https://developers.google.com/maps/documentation/android/",
+      "https://developers.google.com/identity/sign-in/android/",
+      "https://developers.google.com/mobile-ads-sdk/download",
+      "https://developers.google.com/gcm/android/",
+      "https://developers.google.com/app-indexing/"
+    ]
+  },
+  "google/landing/videos": {
+    "title": "",
+    "resources": [
+      "https://www.youtube.com/watch?v=FOn64iqlphk&list=PLWz5rJ2EKKc9Qk1_iCZNbBp6adYnJf9Vf",
+      "https://www.youtube.com/watch?v=F0Kh_RnSM0w&list=PLWz5rJ2EKKc9Qk1_iCZNbBp6adYnJf9Vf",
+      "https://www.youtube.com/watch?v=fvtMtfCuEpw&list=PLWz5rJ2EKKc9Qk1_iCZNbBp6adYnJf9Vf"
+    ]
+  },
+  "google/landing/googleplay": {
+    "title": "",
+    "resources": [
+      "google/play/billing/index.html",
+      "google/play/billing/billing_subscriptions.html",
+      "google/play/developer-api.html"
+    ]
+  },
+  "develop/landing/courses": {
+    "title": "",
+    "resources": [
+      "https://www.udacity.com/course/ux-design-for-mobile-developers--ud849",
+      "https://www.udacity.com/course/developing-android-apps--ud853",
+      "https://www.udacity.com/course/android-performance--ud825",
+      "https://www.udacity.com/android-nanodegree",
+      "https://www.udacity.com/course/advanced-android-app-development--ud855",
+      "https://www.udacity.com/course/android-ubiquitous-computing--ud875",
+      "https://www.udacity.com/course/google-play-services--ud876",
+      "https://www.udacity.com/course/android-design-for-developers--ud862",
+      "https://www.udacity.com/course/android-development-for-beginners--ud837",
+      "https://www.udacity.com/course/gradle-for-android-and-java--ud867"
+    ]
+  },
+  "preview/landing/herolinks": {
+    "title": "",
+    "resources": [
+      "https://www.udacity.com/course/ux-design-for-mobile-developers--ud849",
+      "https://www.udacity.com/course/developing-android-apps--ud853",
+      "https://www.udacity.com/course/android-performance--ud825"
+    ]
+  },
+  "distribute/landing/carousel": {
+    "title": "",
+    "resources": [
+      "http://www.youtube.com/watch?v=Pd49vTkvu0U",
+      "http://www.youtube.com/watch?v=ekxABqJeRBc",
+      "http://www.youtube.com/watch?v=MPnH7h12h0U",
+      "http://www.youtube.com/watch?v=700gYRkhkLM"
+    ]
+  },
+  "distribute/landing/googleplay": {
+    "title": "",
+    "resources": [
+      "distribute/googleplay/about.html",
+      "distribute/googleplay/developer-console.html",
+      "distribute/googleplay/index.html#opportunities"
+    ]
+  },
+  "distribute/landing/more": {
+    "title": "",
+    "resources": [
+    "distribute/users/promote-with-ads.html",
+    "distribute/monetize/ads.html",
+    "distribute/analyze/index.html",
+    "distribute/engage/deep-linking.html",
+    "distribute/engage/easy-signin.html",
+    "https://cloud.google.com/docs/"
+    ]
+  },
   "distribute/edu/videos/stories": {
     "title": "",
     "resources": [
@@ -37,26 +218,25 @@
       "http://youtu.be/vzvpcEffvaE"
     ]
   },
-  "launch/static": {
+/*  "launch/static": {
     "title": "",
     "resources": [
-      "distribute/googleplay/about.html",
-      "distribute/googleplay/guide.html",
-      "about/versions/lollipop.html",
-      "distribute/googleplay/wear.html",
-      "distribute/googleplay/tv.html",
-      "distribute/googleplay/edu/about.html",
-      "distribute/googleplay/families/about.html",
-      "distribute/monetize/subscriptions.html",
+      "http://www.youtube.com/watch?v=1RIz-cmTQB4",
+      "http://www.youtube.com/watch?v=MVBMWDzyHAI",
+      "http://android-developers.blogspot.com/2013/11/app-translation-service-now-available.html",
+      "http://android-developers.blogspot.com/2013/10/more-visibility-for-tablet-apps-in.html",
+      "http://android-developers.blogspot.com/2013/11/bring-your-apps-into-classroom-with.html",
+      "distribute/essentials/quality/tablets.html",
+      "distribute/users/build-buzz.html",
+      "distribute/monetize/premium.html",
       "distribute/monetize/freemium.html",
       "distribute/monetize/ads.html",
-      "distribute/users/promote-with-ads.html",
-      "distribute/engage/deep-linking.html",
-      "distribute/engage/game-services.html",
-      "distribute/essentials/optimizing-your-app.html",
-      "distribute/engage/easy-signin.html",
+      "distribute/essentials/best-practices/apps.html",
+      "distribute/essentials/best-practices/games.html",
+      "distribute/users/know-your-user.html",
+      "distribute/googleplay/developer-console.html"
     ]
-  },
+  }, */
   "launch/static/ja": {
     "title": "",
     "resources": [
@@ -107,8 +287,18 @@
       "distribute/googleplay/auto.html",
       "distribute/googleplay/tv.html",
       "distribute/googleplay/wear.html",
+      "distribute/googleplay/cardboard.html",
+      "distribute/googleplay/cast.html",
       "distribute/googleplay/edu/about.html",
-      "distribute/googleplay/families/about.html"
+      "distribute/googleplay/families/about.html",
+      "distribute/googleplay/work/about.html"
+    ]
+  },
+  "distribute/googleplay/gpfw": {
+    "resources": [
+      "http://www.android.com/work/",
+      "https://www.youtube.com/watch?v=jQWB_-o1kz4&list=PLOU2XLYxmsIKAK2Bhv19H2THwF-22O5WX",
+      "training/enterprise/index.html"
     ]
   },
   "distribute/essentials": {
@@ -136,10 +326,14 @@
     "resources": [
       "distribute/users/know-your-user.html",
       "distribute/users/your-listing.html",
-      "distribute/users/build-buzz.html",
-      "distribute/users/build-community.html",
       "distribute/users/expand-to-new-markets.html",
-      "distribute/users/promote-with-ads.html"
+      "distribute/users/promote-with-ads.html",
+      "distribute/users/appindexing.html",
+      "distribute/users/ota-installs.html",
+      "distribute/users/house-ads.html",
+      "distribute/users/youtube.html",
+      "distribute/users/build-buzz.html",
+      "distribute/users/build-community.html"
     ]
   },
   "distribute/engagelanding": {
@@ -149,8 +343,11 @@
       "distribute/engage/gcm.html",
       "distribute/engage/easy-signin.html",
       "distribute/engage/deep-linking.html",
-      "distribute/engage/game-services.html",
+      "distribute/engage/ads.html",
+      "distribute/engage/intents.html",
+      "distribute/engage/appindexing.html",
       "distribute/engage/analytics.html",
+      "distribute/engage/game-services.html",
       "distribute/engage/app-updates.html",
       "distribute/engage/community.html",
       "distribute/engage/video.html"
@@ -324,6 +521,22 @@
       "https://support.google.com/googleplay/android-developer/answer/138294"
     ]
   },
+  "distribute/googleplay/cast": {
+    "title": "Google Cast",
+    "resources": [
+      "https://developers.google.com/cast/docs/ux_guidelines",
+      "https://developers.google.com/cast/docs/android_sender",
+      "http://www.github.com/googlecast"
+    ]
+  },
+  "distribute/googleplay/cardboard": {
+    "title": "Google Cast",
+    "resources": [
+      "https://www.google.com/get/cardboard/get-cardboard/",
+      "https://developers.google.com/cardboard/android/download",
+      "http://www.google.com/design/spec-vr"
+    ]
+  },
   "distribute/googleplay/gpfe/highlight": {
     "title": "About Google Play for Education",
     "resources": [
@@ -406,8 +619,10 @@
   "distribute/users/promotewithads": {
     "title": "",
     "resources": [
-      "http://www.google.com/ads/admob/#subid=us-en-et-dac",
-      "distribute/essentials/optimizing-your-app.html"
+      "https://support.google.com/adwords/answer/6032059",
+      "https://support.google.com/adwords/answer/6032073",
+      "https://support.google.com/adwords/answer/6167164",
+      "https://support.google.com/adwords/answer/6167162"
     ]
   },
   "distribute/users/buildbuzz": {
@@ -439,6 +654,40 @@
       "http://www.youtube.com/yt/dev/"
     ]
   },
+  "distribute/users/appindexing": {
+    "title": "",
+    "resources": [
+      "https://developers.google.com/app-indexing/",
+      "https://developers.google.com/app-indexing/webmasters/details",
+      "distribute/engage/appindexing.html"
+    ]
+  },
+  "distribute/users/otas": {
+    "title": "",
+    "resources": [
+      "https://developers.google.com/identity/sign-in/android/",
+      "https://developers.google.com/+/features/play-installs",
+      "https://developers.google.com/+/features/analytics"
+    ]
+  },
+  "distribute/users/houseads": {
+    "title": "",
+    "resources": [
+      "https://support.google.com/admob/topic/2784623",
+      "https://developers.google.com/mobile-ads-sdk/download",
+      "http://support.google.com/googleplay/android-developer/topic/2985714",
+      "http://analyticsacademy.withgoogle.com/mobile-app",
+      "https://support.google.com/analytics/answer/2611404",
+      "https://support.google.com/admob/answer/3111064"
+    ]
+  },
+  "distribute/users/youtube": {
+    "title": "",
+    "resources": [
+      "https://support.google.com/youtube/answer/6140493",
+      "https://support.google.com/youtube/answer/2797387"
+    ]
+  },
   "distribute/toolsreference/bestpractices/apps": {
     "title": "",
     "resources": [
@@ -662,6 +911,31 @@
       "guide/topics/appwidgets/index.html"
     ]
   },
+  "distribute/engage/reengage": {
+    "title": "",
+    "resources": [
+      "https://support.google.com/adwords/answer/6032073",
+      "distribute/engage/deep-linking.html",
+      "https://support.google.com/adwords/answer/6167162",
+      "distribute/users/promote-with-ads.html"
+    ]
+  },
+  "distribute/engage/appindexing": {
+    "title": "",
+    "resources": [
+      "distribute/engage/intents.html",
+      "distribute/engage/appindexing.html",
+      "distribute/users/appindexing.html"
+    ]
+  },
+  "distribute/engage/intents": {
+    "title": "",
+    "resources": [
+      "guide/components/intents-filters.html",
+      "distribute/engage/appindexing.html",
+      "distribute/engage/ads.html"
+    ]
+  },
   "distribute/getusers/expandnewmarkets": {
     "title": "",
     "resources": [
@@ -691,10 +965,9 @@
   "distribute/engage/gplus": {
     "title": "",
     "resources": [
-      "google/play-services/plus.html",
-      "google/play-services/games.html",
-      "https://developers.google.com/+/mobile/android/share/interactive-post",
-      "https://developers.google.com/+/mobile/android/share/deep-link"
+      "distribute/users/ota-installs.html",
+      "https://developers.google.com/identity/sign-in/android/people",
+      "https://developers.google.com/+/mobile/android/"
     ]
   },
   "distribute/engage/community": {
@@ -1088,6 +1361,17 @@
       "training/monetization/ads-and-ux.html"
     ]
   },
+  "distribute/monetize/admob": {
+    "title": "",
+    "resources": [
+      "https://support.google.com/admob/topic/2784623",
+      "https://developers.google.com/mobile-ads-sdk/download",
+      "http://analyticsacademy.withgoogle.com/mobile-app",
+      "http://support.google.com/googleplay/android-developer/topic/2985714",
+      "https://support.google.com/admob/answer/2753860",
+      "https://support.google.com/admob/"
+    ]
+  },
   "distribute/monetize/paymentmethods": {
     "title": "",
     "resources": [
@@ -1095,6 +1379,17 @@
       "https://support.google.com/googleplay/answer/2651410"
     ]
   },
+  "preview/landing/resources": {
+    "title": "",
+    "resources": [
+      "preview/overview.html",
+      "preview/api-overview.html",
+      "preview/setup-sdk.html",
+      "preview/samples.html",
+      "preview/reference.html",
+      "preview/support.html"
+    ]
+  },
   "autolanding": {
     "title": "",
     "resources": [
@@ -1282,4 +1577,4 @@
       "samples/BasicManagedProfile/index.html"
     ]
   }
-}
+}
\ No newline at end of file
diff --git a/docs/html/jd_extras.js b/docs/html/jd_extras.js
index f91550f..6f6d31d 100644
--- a/docs/html/jd_extras.js
+++ b/docs/html/jd_extras.js
@@ -14,6 +14,8 @@
    ALL_RESOURCES_BY_URL.  */
 
 DISTRIBUTE_RESOURCES = DISTRIBUTE_RESOURCES.concat([
+ /* TODO Remove standard resources from here, such as below
+ */
   {
     "title":"Quizlet Developer Story",
     "titleFriendly":"",
@@ -29,7 +31,7 @@
     "type":"video"
   },
   {
-    "title":"Whats New in Google Play",
+    "title":"What's New in GPFE",
     "titleFriendly":"",
     "summary":"Learn about the vision and philosophy behind Google Play for Education",
     "url":"https://www.youtube.com/watch?v=IKhU180eJMo",
@@ -43,6 +45,105 @@
     "type":"video"
   },
   {
+    "title":"Get started with Google Cast",
+    "titleFriendly":"",
+    "summary":"Build multi-screen experiences, let the user send video and audio content to TVs and speakers.",
+    "url":"https://developers.google.com/cast/docs/ux_guidelines",
+    "group":"",
+    "keywords": ["cast", "chromecast", "video", "audio"],
+    "tags": [],
+    "image":"images/cards/card-cast_2x.jpg",
+    "type":"Guide"
+  },
+  {
+    "title":"Android Sender Applications",
+    "titleFriendly":"",
+    "summary":"Get an overview of how your Android app can act as a Google Cast sender app.",
+    "url":"https://developers.google.com/cast/docs/android_sender",
+    "group":"",
+    "keywords": ["cast", "sender"],
+    "tags": [],
+    "image":"images/cards/card-cast_2x.jpg",
+    "type":"Guide"
+  },
+  {
+    "title":"Cast sample apps",
+    "titleFriendly":"",
+    "summary":"Get example Google Cast applications for both senders and receivers.",
+    "url":"http://www.github.com/googlecast",
+    "group":"",
+    "keywords": ["cast", "samples"],
+    "tags": [],
+    "image":"images/cards/card-cast_2x.jpg",
+    "type":"Samples"
+  },
+  {
+    "title":"Get Cardboard",
+    "titleFriendly":"",
+    "summary":"Get your own Cardboard, today. Buy one from a manufacturer or build your own, and start developing.",
+    "url":"https://www.google.com/get/cardboard/get-cardboard/",
+    "group":"",
+    "keywords": ["carboard","vr"],
+    "tags": [],
+    "image":"images/cards/card-cardboard_2x.png",
+    "type":"Guide"
+  },
+    {
+    "title":"Download the Cardboard SDK",
+    "titleFriendly":"",
+    "summary":"Grab the Cardboard libraries from GitHub and start creating VR apps in your favorite development environment.",
+    "url":"https://developers.google.com/cardboard/android/download",
+    "group":"",
+    "keywords": ["carboard","vr"],
+    "tags": [],
+    "image":"images/cards/card-cardboard_2x.png",
+    "type":"Guide"
+  },
+  {
+    "title":"Cardboard design guidelines",
+    "titleFriendly":"",
+    "summary":"Focus on overall usability and avoiding common VR pitfalls while creating an immersive experience of your own.",
+    "url":"http://www.google.com/design/spec-vr",
+    "group":"",
+    "keywords": ["carboard","vr"],
+    "tags": [],
+    "image":"images/cards/card-cardboard_2x.png",
+    "type":"Design"
+  },
+  {
+    "title":"Maps",
+    "titleFriendly":"",
+    "summary":"Give users the map that more than a billion people use every month.",
+    "url":"https://developers.google.com/maps/documentation/android/",
+    "group":"",
+    "keywords": ["maps"],
+    "tags": [],
+    "image":"images/google/gps-maps.png",
+    "type":"Guide"
+  },
+    {
+    "title":"Places API",
+    "titleFriendly":"",
+    "summary":"give your users contextual information about where they are, when they’re there.",
+    "url":"https://developers.google.com/places/android/",
+    "group":"",
+    "keywords": ["places","location", "context"],
+    "tags": [],
+    "image":"images/cards/card-places_2x.png",
+    "type":"Guide"
+  },
+    {
+    "title":"Google Cloud Messaging",
+    "titleFriendly":"",
+    "summary":"Send push notifications and pubsub from your server to your users’ devices around the world.",
+    "url":"https://developers.google.com/gcm/android/",
+    "group":"",
+    "keywords": ["push","gcm"],
+    "tags": [],
+    "image":"images/gcm/gcm-logo.png",
+    "type":"Guide"
+  },
+  {
     "title":"ClassDojo Developer Story",
     "titleFriendly":"",
     "summary":"ClassDojo is a classroom tool that helps teachers improve behavior in their classrooms quickly and easily. See how they optimized for the classroom with Android and the power of Google Play for Education.",
@@ -99,6 +200,162 @@
     "type":"video"
   },
   {
+    "title":"DesignBytes: Intro To Material Design",
+    "titleFriendly":"",
+    "summary":"These days, UI designers need to be thinking about phones, tablets, laptops, TVs, smartwatches, and beyond. In this DesignByte we talk about how Google designers have been working on making cross-platform and multi-screen design easier. We wanted to build a design system that felt at home on every screen, from the smallest watch to the largest TV.",
+    "url":"http://www.youtube.com/watch?v=p4gmvHyuZzw",
+    "group":"",
+    "keywords": [],
+    "tags": [
+    ],
+    "image":"http://i1.ytimg.com/vi/p4gmvHyuZzw/maxresdefault.jpg",
+    "type":"video"
+  },
+  {
+    "title":"DesignBytes: Paper and Ink: The Materials that Matter",
+    "titleFriendly":"",
+    "summary":"Join Rich Fulcher to learn about the materials of material design. See how virtual paper and ink form the foundation of your tactile user interface and master the rules that govern their behaviour.",
+    "url":"http://www.youtube.com/watch?v=YaG_ljfzeUw",
+    "group":"",
+    "keywords": [],
+    "tags": [
+    ],
+    "image":"http://i1.ytimg.com/vi/YaG_ljfzeUw/maxresdefault.jpg",
+    "type":"video"
+  },
+  {
+    "title":"DesignBytes: Material Design in the Google I/O App",
+    "titleFriendly":"",
+    "summary":"Roman Nurik shares details on the design process for the Google I/O 2014 app. To check out the app's source code, visit github.com/google/iosched.",
+    "url":"http://www.youtube.com/watch?v=XOcCOBe8PTc",
+    "group":"",
+    "keywords": [],
+    "tags": [
+    ],
+    "image":"http://i1.ytimg.com/vi/XOcCOBe8PTc/maxresdefault.jpg",
+    "type":"video"
+  },
+  {
+    "title":"Battery Drain and Networking",
+    "titleFriendly":"",
+    "summary":"Let’s take a moment to make something insanely clear: As far as battery is concerned, NETWORKING is the biggest, baddest, dirtiest offender there is. And optimizing performance here isn’t easy. Since the chip isn’t always awake and draining power, means you can optimize how it wakes up, sends traffic, and saves battery.",
+    "url":"http://www.youtube.com/watch?v=fEEulSk1kNY",
+    "group":"",
+    "keywords": [],
+    "tags": [
+    ],
+    "image":"http://i1.ytimg.com/vi/fEEulSk1kNY/maxresdefault.jpg",
+    "type":"video"
+  },
+  {
+    "title":"Batching Background Work Until Later",
+    "titleFriendly":"",
+    "summary":"Yes, your app is special. But when it comes to battery use, sometimes it’s better to be part of the crowd. Why not spread the battery blame around a bit? Ian Ni-Lewis shows you how ridiculously easy it is to go from battery hog to team player in this video.",
+    "url":"http://www.youtube.com/watch?v=-3ry8PxcJJA",
+    "group":"",
+    "keywords": [],
+    "tags": [
+    ],
+    "image":"http://i1.ytimg.com/vi/-3ry8PxcJJA/maxresdefault.jpg",
+    "type":"video"
+  },
+  {
+    "title":"The Performance Lifecycle",
+    "titleFriendly":"",
+    "summary":"Performance problems surface in your application at the least-wanted times (like right before you’re about to ship your first build). But don’t freak out: There’s a simple process that you can follow to help get your performance back under control.",
+    "url":"http://www.youtube.com/watch?v=_kKTGK-Cb_4",
+    "group":"",
+    "keywords": [],
+    "tags": [
+    ],
+    "image":"http://i1.ytimg.com/vi/_kKTGK-Cb_4/maxresdefault.jpg",
+    "type":"video"
+  },
+  {
+    "title":"Introduction to Android Studio",
+    "titleFriendly":"",
+    "summary":"Learn why you should migrate your projects to Android Studio now and how it can help you be more productive as a developer. Rich layout editor, handy suggestions and fixes, new Android project view - these are just some of the things you can expect from the IDE, which is built on the successful IntelliJ IDEA.",
+    "url":"https://www.youtube.com/watch?v=K2dodTXARqc&list=PLWz5rJ2EKKc8I9gHTMh5yKkwRRGE8BjbQ",
+    "group":"",
+    "keywords": ["studio", "tools"],
+    "tags": [
+    ],
+    "image":"http://i1.ytimg.com/vi/K2dodTXARqc/maxresdefault.jpg",
+    "type":"video"
+  },
+  {
+    "title":"Google Play Services 7.3",
+    "titleFriendly":"",
+    "summary":"Google Play Services 7.3 brings a ton of great new features to help you BUILD BETTER APPS! This update brings the ability to connect multiple wearables simultaneously to a single phone.",
+    "url":"https://www.youtube.com/watch?v=FOn64iqlphk&list=PLWz5rJ2EKKc9Qk1_iCZNbBp6adYnJf9Vf",
+    "group":"",
+    "keywords": ["google play services"],
+    "tags": [
+    ],
+    "image":"http://i1.ytimg.com/vi/FOn64iqlphk/maxresdefault.jpg",
+    "type":"video"
+  },
+  {
+    "title":"Google Play Services 6.5",
+    "titleFriendly":"",
+    "summary":"Google Play services 6.5 includes new features in Google Maps, Google Drive and Google Wallet as well as the recently launched Google Fit API. ",
+    "url":"https://www.youtube.com/watch?v=fvtMtfCuEpw&list=PLWz5rJ2EKKc9Qk1_iCZNbBp6adYnJf9Vf",
+    "group":"",
+    "keywords": ["google play services"],
+    "tags": [
+    ],
+    "image":"http://i1.ytimg.com/vi/fvtMtfCuEpw/maxresdefault.jpg",
+    "type":"video"
+  },
+    {
+    "title":"Google Play Services 7.0",
+    "titleFriendly":"",
+    "summary":"Google Play services 7.0 is here! we've added the Places API, made enhancements to Location and Google Fit, and you can also remote control your Android TV through the new Nearby Connections API.",
+    "url":"https://www.youtube.com/watch?v=F0Kh_RnSM0w&list=PLWz5rJ2EKKc9Qk1_iCZNbBp6adYnJf9Vf",
+    "group":"",
+    "keywords": ["google play services"],
+    "tags": [
+    ],
+    "image":"http://i1.ytimg.com/vi/F0Kh_RnSM0w/maxresdefault.jpg",
+    "type":"video"
+  },
+  {
+    "title":"Running a Successful Games Business with Google",
+    "titleFriendly":"",
+    "summary":"Sure, we all want to make the next great gaming masterpiece. But we also want to feed our families and/or dogs. Join Bob Meese from the Google Play team as he gives you some key pointers on how to make sure you're best taking advantage of Google Play and running a successful games business.",
+    "url":"http://www.youtube.com/watch?v=tDmnGNkTtlE",
+    "group":"",
+    "keywords": [],
+    "tags": [
+    ],
+    "image":"http://i1.ytimg.com/vi/tDmnGNkTtlE/maxresdefault.jpg",
+    "type":"video"
+  },
+  {
+    "title":"Introduction to Android TV",
+    "titleFriendly":"",
+    "summary":"Android TV brings the Android platform to the living room with rich content and entertaining app experiences. In this video, Timothy introduces the design philosophy and developer components that make building TV experiences easier than ever before.",
+    "url":"https://www.youtube.com/watch?v=6K_jxccHv5M&index=1&list=PLOU2XLYxmsILFBfx66ens76VMLMEPJAB0",
+    "group":"",
+    "keywords": ["tv"],
+    "tags": [
+    ],
+    "image":"http://i1.ytimg.com/vi/6K_jxccHv5M/maxresdefault.jpg",
+    "type":"video"
+  },
+  {
+    "title":"Introduction to Android Auto",
+    "titleFriendly":"",
+    "summary":"Android Auto brings the Android platform to the car in a way that's optimized for the driving experience. It's the same platform you already use for phones, tablets, televisions, wearables, and more. ",
+    "url":"https://www.youtube.com/watch?v=ctiaVxgclsg&list=PLWz5rJ2EKKc9BdE_PSLNIGjXXr3h_orXM",
+    "group":"",
+    "keywords": ["auto"],
+    "tags": [
+    ],
+    "image":"http://i1.ytimg.com/vi/ctiaVxgclsg/maxresdefault.jpg",
+    "type":"video"
+  },
+  {
     "title":"Developer Registration",
     "titleFriendly":"",
     "summary":"Additional information about the registration process.",
@@ -990,28 +1247,14 @@
     ],
     "url": "http://www.google.com/analytics/mobile/",
     "timestamp": 1383243492000,
-    "image": "http://www.google.com//analytics/images/heros/mobile-index.jpg",
-    "title": "Google Mobile App Analytics",
+    "image": "images/cards/analytics-mobile_2x.jpg",
+    "title": "Mobile App Analytics",
     "summary": "Mobile App Analytics measures what matters most at all key stages: from first discovery and download to in-app purchases. ",
     "keywords": ["analytics,user behavior"],
-    "type": "guide",
+    "type": "Guide",
     "titleFriendly": ""
   },
-  {
-    "lang": "en",
-    "group": "",
-    "tags": [
-      "#engagement",
-    ],
-    "url": "https://developers.google.com/app-indexing/",
-    "timestamp": 1383243492000,
-    "image": "https://developers.google.com/app-indexing/images/allthecooks_srp.png",
-    "title": "Sign Up for App Indexing",
-    "summary": "Google is working with app developers and webmasters to index the content of apps and relate them to websites. When relevant, Google Search results on Android will include deep links to apps.",
-    "keywords": [],
-    "type": "guide",
-    "titleFriendly": ""
-  },
+
 
   {
     "lang": "en",
@@ -1032,21 +1275,6 @@
     "lang": "en",
     "group": "",
     "tags": [
-      "#googleplus",
-    ],
-    "url": "https://developers.google.com/+/mobile/android/people",
-    "timestamp": 1383243492000,
-    "image": "images/google/gps-googleplus.png",
-    "title": "Sign Up for App Indexing",
-    "summary": "After you let users sign in with Google, you can access their age range, language, public profile information, and people that they have circled.",
-    "keywords": ["googleplus"],
-    "type": "guide",
-    "titleFriendly": ""
-  },
-  {
-    "lang": "en",
-    "group": "",
-    "tags": [
       "#gcm",
     ],
     "url": "http://developer.chrome.com/apps/cloudMessagingV2",
@@ -1121,6 +1349,19 @@
     "lang": "en",
     "group": "",
     "tags": [],
+    "url": "https://developers.google.com/+/mobile/android/",
+    "timestamp": 1194884220000,
+    "image": 'images/google/gps-googleplus.png',
+    "title": "Google+ Platform",
+    "summary": "Find out about features such as interactive posts, Hangouts, accessing basic user details and their social graphs to make your app more personal.",
+    "keywords": ["Google+"],
+    "type": "guide",
+    "titleFriendly": ""
+  },
+  {
+    "lang": "en",
+    "group": "",
+    "tags": [],
     "url": "https://support.google.com/googleplay/android-developer/answer/2528691",
     "timestamp": 1194884220000,
     "image": "images/play_dev.jpg",
@@ -1316,20 +1557,6 @@
     "lang": "en",
     "group": "",
     "tags": ["monetize", "ads"],
-    "url": "http://www.google.com/ads/admob/#subid=us-en-et-dac",
-    "timestamp": null,
-    "image": "distribute/images/advertising.png",
-    "title": "AdMob",
-    "summary": "Make money by connecting with over a million Google advertisers all over the world, so your revenue scales with your app.",
-    "keywords": ["ads"],
-    "type": "distribute",
-    "titleFriendly": ""
-  },
-
-  {
-    "lang": "en",
-    "group": "",
-    "tags": ["monetize", "ads"],
     "url": "http://www.google.com/doubleclick/publishers/small-business/index.html",
     "timestamp": null,
     "image": "http://www.google.com/doubleclick/publishers/small-business/images/define_ad.png",
@@ -1345,9 +1572,9 @@
     "tags": ["monetize", "ads"],
     "url": "http://support.google.com/googleplay/android-developer/topic/2985714",
     "timestamp": null,
-    "image": "http://storage.googleapis.com/support-kms-prod/SNP_712EA2784949DDF085C46E3BE7B1DC618A09_4389397_en_v0",
+    "image":"images/play_dev.jpg",
     "title": "Policy Center: Ads",
-    "summary": "Introduction to ads and system interference policies in Google Play",
+    "summary": "Introduction to ads and system interference policies in Google Play.",
     "keywords": ["ads"],
     "type": "distribute",
     "titleFriendly": ""
@@ -1355,6 +1582,32 @@
   {
     "lang": "en",
     "group": "",
+    "tags": [],
+    "url": "https://support.google.com/analytics/answer/2611404",
+    "timestamp": null,
+    "image": "images/cards/analytics-mobile_2x.jpg",
+    "title": "Create Audience lists in Google Analytics",
+    "summary": "Find out how to use your analytics data to discover high value users and create remarketing audiences to use in AdMob.",
+    "keywords": ["ads, analytics, monetize"],
+    "type": "distribute",
+    "titleFriendly": ""
+  },
+  {
+    "lang": "en",
+    "group": "",
+    "tags": [],
+    "url": "https://support.google.com/admob/answer/3111064",
+    "timestamp": null,
+    "image": "distribute/images/advertising.jpg",
+    "title": "AdMob in-app conversion tracking",
+    "summary": "Use in-app conversion tracking to attribute revenue back to your IAP promotion campaigns and determine which ones earn you the most.",
+    "keywords": ["ads, analytics, conversions"],
+    "type": "distribute",
+    "titleFriendly": ""
+  },
+  {
+    "lang": "en",
+    "group": "",
     "tags": ["monetize", "giftcards"],
     "url": "https://play.google.com/about/giftcards/",
     "timestamp": null,
@@ -1420,12 +1673,12 @@
   {
     "lang": "en",
     "group": "",
-    "tags": ["analytics"],
+    "tags": [],
     "url": "https://developers.google.com/analytics/devguides/collection/android/",
     "timestamp": null,
-    "image": "https://developers.google.com/analytics/images/home/gear-logo.png",
-    "title": "Google Mobile App Analytics SDK",
-    "summary": "Get started with the Google Analytics SDK for Android.",
+    "image": "images/cards/analytics-mobile_2x.jpg",
+    "title": "Mobile App Analytics SDK",
+    "summary": "Measure everything about your app. Get started with the Google Analytics SDK for Android.",
     "keywords": ["analytics, user behavior"],
     "type": "sdk",
     "titleFriendly": ""
@@ -1683,7 +1936,7 @@
     "tags": [],
     "url": "https://developers.google.com/analytics/solutions/mobile-implementation-guide",
     "timestamp": null,
-    "image": "distribute/images/gp-analytics-logo.jpg",
+    "image": "images/cards/analytics-mobile_2x.jpg",
     "title": "Mobile Analytics Implementation Guide",
     "summary": "Learn how you can implement additional Google Analytics features to better understand your users and their behavior.",
     "keywords": ["analytics", "Play", "users"],
@@ -1709,7 +1962,7 @@
     "tags": [],
     "url": "https://analyticsacademy.withgoogle.com/course04",
     "timestamp": null,
-    "image": "distribute/images/gp-analytics-logo.jpg",
+    "image": "images/cards/analytics-mobile_2x.jpg",
     "title": "Mobile App Analytics Fundamentals",
     "summary": "This self-paced online course on mobile app measurement shows you how Google Analytics data can help you make your app more discoverable and profitable.",
     "keywords": ["analytics"],
@@ -1722,7 +1975,7 @@
     "tags": [],
     "url": "https://github.com/googleanalytics/google-analytics-plugin-for-unity",
     "timestamp": null,
-    "image": "distribute/images/gp-analytics-logo.jpg",
+    "image": "images/cards/analytics-mobile_2x.jpg",
     "title": "Analytics Plugin for Unity",
     "summary": "If you're building games with Unity, you can now implement Analytics once and ship it on multiple platforms automatically.",
     "keywords": ["analytics", "unity"],
@@ -1735,7 +1988,7 @@
     "tags": [],
     "url": "https://developers.google.com/analytics/devguides/collection/android/v4/enhanced-ecommerce",
     "timestamp": null,
-    "image": "distribute/images/gp-analytics-logo.jpg",
+    "image": "images/cards/analytics-mobile_2x.jpg",
     "title": "In-App Purchases & Ecommerce",
     "summary": "If your app sells virtual or real goods, ecommerce tracking can help you understand what behaviors lead to purchases.",
     "keywords": ["analytics, ecommerce"],
@@ -1748,7 +2001,7 @@
     "tags": [],
     "url": "https://support.google.com/analytics/answer/1032415",
     "timestamp": null,
-    "image": "distribute/images/gp-analytics-logo.jpg",
+    "image": "images/cards/analytics-mobile_2x.jpg",
     "title": "Goals",
     "summary": "Track important actions in your app as goals and measure performance against your objectives.",
     "keywords": ["analytics"],
@@ -1761,7 +2014,7 @@
     "tags": [],
     "url": "https://support.google.com/analytics/answer/2568874?ref_topic=6012392",
     "timestamp": null,
-    "image": "distribute/images/gp-analytics-logo.jpg",
+    "image": "images/cards/analytics-mobile_2x.jpg",
     "title": "Active Users",
     "summary": "The active user report displays your 1-day, 7-day, 14-day and 30-day trailing active users next to each other, to help you analyze performance over time.",
     "keywords": ["analytics"],
@@ -1774,7 +2027,7 @@
     "tags": [],
     "url": "https://developers.google.com/analytics/devguides/collection/android/v4/events",
     "timestamp": null,
-    "image": "distribute/images/gp-analytics-logo.jpg",
+    "image": "images/cards/analytics-mobile_2x.jpg",
     "title": "Events",
     "summary": "Events let you measure granular in-app activities and understand user journeys.",
     "keywords": ["analytics"],
@@ -1787,7 +2040,7 @@
     "tags": [],
     "url": "https://developers.google.com/analytics/devguides/collection/android/v4/customdimsmets",
     "timestamp": null,
-    "image": "distribute/images/gp-analytics-logo.jpg",
+    "image": "images/cards/analytics-mobile_2x.jpg",
     "title": "Custom Dimensions",
     "summary": "Custom dimensions enable the association of metadata with hits, users, and sessions in Google Analytics.",
     "keywords": ["analytics"],
@@ -1800,7 +2053,7 @@
     "tags": [],
     "url": "https://developers.google.com/analytics/devguides/collection/android/v4/user-id",
     "timestamp": null,
-    "image": "distribute/images/gp-analytics-logo.jpg",
+    "image": "images/cards/analytics-mobile_2x.jpg",
     "title": "User ID",
     "summary": "The User ID feature enables Google Analytics to measure user activities that span across devices.",
     "keywords": ["analytics"],
@@ -1813,7 +2066,7 @@
     "tags": [],
     "url": "https://developers.google.com/analytics/devguides/collection/android/v4/display-features",
     "timestamp": null,
-    "image": "distribute/images/gp-analytics-logo.jpg",
+    "image": "images/cards/analytics-mobile_2x.jpg",
     "title": "Demographic Reporting",
     "summary": "By enabling display features, you can see just how different user segments engage and monetize.",
     "keywords": ["analytics"],
@@ -1826,7 +2079,7 @@
     "tags": [],
     "url": "https://support.google.com/analytics/answer/3123906",
     "timestamp": null,
-    "image": "distribute/images/gp-analytics-logo.jpg",
+    "image": "images/cards/analytics-mobile_2x.jpg",
     "title": "User Segmentation",
     "summary": "Segments let you compare metrics for different subsets of users to identify trends and opportunities for your apps.",
     "keywords": ["analytics"],
@@ -1839,7 +2092,7 @@
     "tags": [],
     "url": "https://developers.google.com/analytics/devguides/collection/android/v4/campaigns",
     "timestamp": null,
-    "image": "distribute/images/gp-analytics-logo.jpg",
+    "image": "images/cards/analytics-mobile_2x.jpg",
     "title": "Campaign Tracking",
     "summary": "Measuring campaigns in Google Analytics enables the attribution of campaigns and traffic sources to user activity within your app.",
     "keywords": ["analytics"],
@@ -1865,7 +2118,7 @@
     "tags": [],
     "url": "https://support.google.com/analytics/answer/1033961",
     "timestamp": null,
-    "image": "distribute/images/gp-analytics-logo.jpg",
+    "image": "images/cards/analytics-mobile_2x.jpg",
     "title": "AdWords Integration",
     "summary": "Link Analytics and AdWords to see the entire picture of customer behavior, from ad click or impression through your site to conversion. ",
     "keywords": ["adwords, analytics"],
@@ -1878,7 +2131,7 @@
     "tags": [],
     "url": "https://developers.google.com/analytics/devguides/collection/android/v4/campaigns#google-play-url-builder",
     "timestamp": null,
-    "image": "distribute/images/gp-analytics-logo.jpg",
+    "image": "images/cards/analytics-mobile_2x.jpg",
     "title": "Campaign URL builder for Google Play",
     "summary": "Easily create your URLs to track install campaigns.",
     "keywords": ["play, analytics"],
@@ -1904,7 +2157,7 @@
     "tags": [],
     "url": "https://support.google.com/analytics/answer/2785577",
     "timestamp": null,
-    "image": "distribute/images/gp-analytics-logo.jpg",
+    "image": "images/cards/analytics-mobile_2x.jpg",
     "title": "Behavior Flow",
     "summary": "The Behavior Flow report visualizes the path users traveled from one Screen or Event to the next. This report can help you discover what content keeps users engaged with your app.",
     "keywords": ["analytics"],
@@ -1917,7 +2170,7 @@
     "tags": [],
     "url": "https://support.google.com/analytics/answer/1151300",
     "timestamp": null,
-    "image": "distribute/images/gp-analytics-logo.jpg",
+    "image": "images/cards/analytics-mobile_2x.jpg",
     "title": "Custom Reports",
     "summary": "Custom Reports let you create your own reports in your Google Analytics account.",
     "keywords": ["analytics"],
@@ -1930,7 +2183,7 @@
     "tags": [],
     "url": "https://support.google.com/analytics/answer/2611268",
     "timestamp": null,
-    "image": "distribute/images/gp-analytics-logo.jpg",
+    "image": "images/cards/analytics-mobile_2x.jpg",
     "title": "Audience Lists &amp; Remarketing",
     "summary": "Remarketing with Google Analytics lets you deliver targeted ads to users who've already been to your site or app. You can even base those ads on the behavior those users displayed during their sessions.",
     "keywords": ["analytics"],
@@ -1943,7 +2196,7 @@
     "tags": [],
     "url": "https://support.google.com/admob/answer/3508177",
     "timestamp": null,
-    "image": "distribute/images/gp-analytics-logo.jpg",
+    "image": "images/cards/analytics-mobile_2x.jpg",
     "title": "AdMob Integration",
     "summary": "With Google Analytics in AdMob, you can view Google Analytics data for your linked apps from within your AdMob account.",
     "keywords": ["analytics"],
@@ -1956,7 +2209,7 @@
     "tags": [],
     "url": "https://developers.google.com/analytics/solutions/mobile-campaign-deep-link",
     "timestamp": null,
-    "image": "distribute/images/gp-analytics-logo.jpg",
+    "image": "images/cards/analytics-mobile_2x.jpg",
     "title": "Deep-Linking",
     "summary": "Google Analytics gives you a full view of how returning users are interacting with your app, for a holistic view beyond the install.",
     "keywords": ["analytics"],
@@ -1969,7 +2222,7 @@
     "tags": [],
     "url": "https://support.google.com/admob/answer/3508177",
     "timestamp": null,
-    "image": "distribute/images/gp-analytics-logo.jpg",
+    "image": "images/cards/analytics-mobile_2x.jpg",
     "title": "AdMob Integration",
     "summary": "With Google Analytics in AdMob, you can view Google Analytics data for your linked apps from within your AdMob account.",
     "keywords": ["analytics"],
@@ -1982,7 +2235,7 @@
     "tags": [],
     "url": "https://support.google.com/analytics/answer/2568874",
     "timestamp": null,
-    "image": "distribute/images/gp-analytics-logo.jpg",
+    "image": "images/cards/analytics-mobile_2x.jpg",
     "title": "Active User Report",
     "summary": "Active user report displays your 1-day, 7-day, 14-day and 30-day trailing active users next to each other, to help you run benchmark analyses of their performance over time.",
     "keywords": ["analytics"],
@@ -1990,6 +2243,656 @@
     "titleFriendly": ""
   },
   {
+    "lang": "en",
+    "group": "",
+    "tags": [],
+    "url": "https://www.google.com/design/spec/animation/",
+    "timestamp": null,
+    "image": "images/cards/material-animation_2x.png",
+    "title": "Animation",
+    "summary": "",
+    "keywords": [],
+    "type": "material design",
+    "titleFriendly": ""
+  },
+  {
+    "lang": "en",
+    "group": "",
+    "tags": [],
+    "url": "https://www.google.com/design/spec/style/",
+    "timestamp": null,
+    "image": "images/cards/material-style_2x.jpg",
+    "title": "Style",
+    "summary": "",
+    "keywords": [],
+    "type": "material design",
+    "titleFriendly": ""
+  },
+  {
+    "lang": "en",
+    "group": "",
+    "tags": [],
+    "url": "https://www.google.com/design/spec/layout/",
+    "timestamp": null,
+    "image": "images/cards/material-layout_2x.png",
+    "title": "Layout",
+    "summary": "",
+    "keywords": [],
+    "type": "material design",
+    "titleFriendly": ""
+  },
+  {
+    "lang": "en",
+    "group": "",
+    "tags": [],
+    "url": "https://www.google.com/design/spec/components/",
+    "timestamp": null,
+    "image": "images/cards/material-components_2x.jpg",
+    "title": "Components",
+    "summary": "",
+    "keywords": [],
+    "type": "material design",
+    "titleFriendly": ""
+  },
+  {
+    "lang": "en",
+    "group": "",
+    "tags": [],
+    "url": "https://www.google.com/design/spec/patterns/",
+    "timestamp": null,
+    "image": "images/cards/material-patterns_2x.png",
+    "title": "Patterns",
+    "summary": "",
+    "keywords": [],
+    "type": "material design",
+    "titleFriendly": ""
+  },
+  {
+    "lang": "en",
+    "group": "",
+    "tags": [],
+    "url": "https://www.google.com/design/spec/usability/",
+    "timestamp": null,
+    "image": "images/cards/material-usability_2x.png",
+    "title": "Usability",
+    "summary": "",
+    "keywords": [],
+    "type": "material design",
+    "titleFriendly": ""
+  },
+  {
+    "lang": "en",
+    "group": "",
+    "tags": [],
+    "url": "https://www.google.com/design/spec/resources/color-palettes.html",
+    "timestamp": null,
+    "image": "images/cards/material-color-palette_2x.jpg",
+    "title": "Color Palettes",
+    "summary": "",
+    "keywords": [],
+    "type": "material design",
+    "titleFriendly": ""
+  },
+  {
+    "lang": "en",
+    "group": "",
+    "tags": [],
+    "url": "https://www.google.com/design/spec/resources/layout-templates.html",
+    "timestamp": null,
+    "image": "images/cards/material-layout-template_2x.jpg",
+    "title": "Layout Templates",
+    "summary": "",
+    "keywords": [],
+    "type": "material design",
+    "titleFriendly": ""
+  },
+  {
+    "lang": "en",
+    "group": "",
+    "tags": [],
+    "url": "https://www.google.com/design/spec/resources/sticker-sheets-icons.html",
+    "timestamp": null,
+    "image": "images/cards/material-sticker-sheet_2x.jpg",
+    "title": "Sticker Sheets & Icons",
+    "summary": "",
+    "keywords": [],
+    "type": "material design",
+    "titleFriendly": ""
+  },
+  {
+    "lang": "en",
+    "group": "",
+    "tags": [],
+    "url": "https://www.google.com/design/spec/resources/roboto-noto-fonts.html",
+    "timestamp": null,
+    "image": "images/cards/material-typography_2x.jpg",
+    "title": "Typography: Roboto and Noto Sans fonts",
+    "summary": "",
+    "keywords": [],
+    "type": "materialdesign",
+    "titleFriendly": ""
+  },
+  {
+    "lang": "en",
+    "group": "",
+    "tags": [
+      "icons",
+      "material",
+      "iconography"
+    ],
+    "url": "https://www.google.com/design/icons/index.html",
+    "timestamp": null,
+    "image": "images/cards/card-material-icons-16x9_2x.jpg",
+    "title": "Material icon collection",
+    "summary": "",
+    "keywords": ["icons"],
+    "type": "material design",
+    "titleFriendly": ""
+  },
+
+  {
+    "lang": "en",
+    "group": "",
+    "tags": [],
+    "url": "https://support.google.com/adwords/answer/6032059",
+    "timestamp": null,
+    "image": "distribute/images/advertising.jpg",
+    "title": "Setting up Mobile App Install Ads",
+    "summary": "With Mobile app installs campaigns on the Search and Display Networks, and TrueView for mobile app promotion on YouTube, you can create custom app install ads that run exclusively on phones and tablets.",
+    "keywords": ["marketing", "admob"],
+    "type": "distribute",
+    "titleFriendly": ""
+  },
+  {
+    "lang": "en",
+    "group": "",
+    "tags": [],
+    "url": "https://support.google.com/adwords/answer/6167164",
+    "timestamp": null,
+    "image": "distribute/images/advertising.jpg",
+    "title": "Best practices for Mobile App Engagement",
+    "summary": "Learn how to market to your user base to drive re-engagement with your app. ",
+    "keywords": ["marketing", "admob"],
+    "type": "distribute",
+    "titleFriendly": ""
+  },
+  {
+    "lang": "en",
+    "group": "",
+    "tags": [
+      "marketing",
+      "engagement",
+      "adwords1"
+    ],
+    "url": "https://support.google.com/adwords/answer/6032073",
+    "timestamp": null,
+    "image": "https://www.gstatic.com/images/icons/material/product/2x/adwords_64dp.png",
+    "title": "Setting up Mobile App Engagement Ads",
+    "summary": "Mobile app engagement campaigns are a great choice for advertisers focused on connecting with people who already have their app.",
+    "keywords": [
+      "marketing",
+      "engagement",
+      "adwords"
+    ],
+    "type": "distribute",
+    "titleFriendly": ""
+  },
+  {
+    "lang": "en",
+    "group": "",
+    "tags": [
+      "marketing",
+      "engagement"
+    ],
+    "url": "https://support.google.com/adwords/answer/6167162",
+    "timestamp": null,
+    "image": "https://www.gstatic.com/images/icons/material/product/2x/adwords_64dp.png",
+    "title": "Best Practices for Mobile App Installs",
+    "summary": "Getting your mobile app discovered can be challenging. Learn how to drive downloads of your app and grow a valuable user base.",
+    "keywords": ["marketing", "adwords"],
+    "type": "distribute",
+    "titleFriendly": ""
+  },
+  {
+    "lang": "en",
+    "group": "",
+    "tags": [],
+    "url": "https://support.google.com/admob/topic/2784623",
+    "timestamp": null,
+    "image": "distribute/images/advertising.jpg",
+    "title": "Set up your AdMob account",
+    "summary": "Setting up your AdMob account in the right way will help you get the most value, check out the Setup and Basics guide.",
+    "keywords": ["marketing", "admob"],
+    "type": "distribute",
+    "titleFriendly": ""
+    },
+    {
+    "lang": "en",
+    "group": "",
+    "tags": [],
+    "url": "http://analyticsacademy.withgoogle.com/mobile-app",
+    "timestamp": null,
+    "image": "distribute/images/advertising.jpg",
+    "title": "Analytics Academy for Mobile Apps",
+    "summary": "Learn how to use Google Analytics to make your app more discoverable and profitable.",
+    "keywords": ["marketing", "analytics"],
+    "type": "distribute",
+    "titleFriendly": ""
+  },
+  {
+    "lang": "en",
+    "group": "",
+    "tags": [],
+    "url": "https://developers.google.com/mobile-ads-sdk/download",
+    "timestamp": null,
+    "image": "distribute/images/advertising.jpg",
+    "title": "Admob Ads",
+    "summary": "Use the Mobile Ads SDK to start showing AdMob ads in your apps.",
+    "keywords": ["marketing", "adwords"],
+    "type": "Guide",
+    "titleFriendly": ""
+  },
+  {
+    "lang": "en",
+    "group": "",
+    "tags": [],
+    "url": "https://support.google.com/admob/",
+    "timestamp": null,
+    "image": "distribute/images/advertising.jpg",
+    "title": "AdMob Help Center",
+    "summary": "For setup assistance, general info, and fixes for specific problems check out the AdMob Help Center.",
+    "keywords": ["admob"],
+    "type": "distribute",
+    "titleFriendly": ""
+  },
+  {
+    "lang": "en",
+    "group": "",
+    "tags": [],
+    "url": "https://support.google.com/admob/answer/2753860",
+    "timestamp": null,
+    "image": "distribute/images/advertising.jpg",
+    "title": "AdMob Policy Guidelines",
+    "summary": "Learn about best practices for displaying AdMob ads in your apps to maximize revenue.",
+    "keywords": ["admob"],
+    "type": "distribute",
+    "titleFriendly": ""
+  },
+
+  {
+    "lang": "en",
+    "group": "",
+    "tags": [],
+    "url": "https://developers.google.com/app-indexing/",
+    "timestamp": 1383243492000,
+    "image": "images/cards/google-search_2x.png",
+    "title": "Set Up App Indexing",
+    "summary": "Surface your app content in Google seaerch. Deep link direct to your apps.",
+    "keywords": ["search", "appindexing", "engagement", "getusers"],
+    "type": "guide",
+    "titleFriendly": ""
+  },
+  {
+    "lang": "en",
+    "group": "",
+    "tags": [],
+    "url": "https://developers.google.com/app-indexing/webmasters/details",
+    "timestamp": null,
+    "image": "images/cards/google-search_2x.png",
+    "title": "Index your app",
+    "summary": "Index your app today by adding deep links and verifying its official web site to ensure it starts appearing in Google Search results. ",
+    "keywords": ["appindexing","search","getusers"],
+    "type": "distribute",
+    "titleFriendly": ""
+  },
+  {
+    "lang": "en",
+    "group": "",
+    "tags": [],
+    "url": "https://developers.google.com/identity/sign-in/android/people",
+    "timestamp": 1383243492000,
+    "image": "images/cards/google-sign-in_2x.png",
+    "title": "Get user profile details",
+    "summary": "After users sign-in with Google, you can access their age range, language, and public profile information.",
+    "keywords": ["signin", "identity", "google"],
+    "type": "guide",
+    "titleFriendly": ""
+  },
+
+
+  {
+    "lang": "en",
+    "group": "",
+    "tags": [],
+    "url": "https://developers.google.com/identity/sign-in/android/",
+    "timestamp": "",
+    "image": "images/cards/google-sign-in_2x.png",
+    "title": "Google Sign-In",
+    "summary": "Discover how you can enhance user experiences on your website or in your app using information provided by their Google identity.",
+    "keywords": ["signin", "identity", "google"],
+    "type": "guide",
+    "titleFriendly": ""
+  },
+  {
+    "lang": "en",
+    "group": "",
+    "tags": [],
+    "url": "https://developers.google.com/+/features/play-installs",
+    "timestamp": 1383243492000,
+    "image": "images/cards/google-sign-in_2x.png",
+    "title": "Over-the-air installs",
+    "summary": "Follow this step-by-step guide to quickly add Google Sign-in and over-the-air app installs to your website.",
+    "keywords": ["signin", "google", "installs"],
+    "type": "guide",
+    "titleFriendly": ""
+  },
+  {
+    "lang": "en",
+    "group": "",
+    "tags": [],
+    "url": "https://developers.google.com/+/features/analytics",
+    "timestamp": 1383243492000,
+    "image": 'images/google/gps-googleplus.png',
+    "title": "Google+ Insights",
+    "summary": "Measure impressions of the over-the-air install prompt, resulting installs, and success rate by day, week, and month.",
+    "keywords": ["signin", "identity"],
+    "type": "guide",
+    "titleFriendly": ""
+  },
+
+
+
+ // TODO remove this?
+  {
+    "title":"Android Wear Materials",
+    "titleFriendly":"",
+    "summary":"Drag and drop your way to beautifully designed Android Wear apps.",
+    "url":"design/downloads/index.html#Wear",
+    "group":"",
+    "keywords": ["icons","stencils","color swatches"],
+    "tags": ["icons","stencils","colorswatches"],
+    "image":"images/cards/android-wear-materials_2x.jpg",
+    "lang":"en",
+    "type":"design"
+  },
+  {
+    "title":"UX Design for Mobile Developers",
+    "titleFriendly":"",
+    "summary":"Learn how to design a 5-star app.",
+    "url":"https://www.udacity.com/course/ux-design-for-mobile-developers--ud849",
+    "group":"",
+    "keywords": ["mobile","ux","design"],
+    "tags": ["courses"],
+    "image":"images/cards/course-ud849.jpg",
+    "lang":"en",
+    "type":"online course"
+  },
+  {
+    "title":"Developing Android Apps",
+    "titleFriendly":"",
+    "summary":"Learn Android and build an app!",
+    "url":"https://www.udacity.com/course/developing-android-apps--ud853",
+    "group":"",
+    "keywords": ["start","firstapp","sdk"],
+    "tags": ["courses"],
+    "image":"images/cards/course-ud853.jpg",
+    "lang":"en",
+    "type":"online course"
+  },
+  {
+    "title":"Android Performance",
+    "titleFriendly":"",
+    "summary":"Optimize your apps for speed and usability.",
+    "url":"https://www.udacity.com/course/android-performance--ud825",
+    "group":"",
+    "keywords": ["performance","battery"],
+    "tags": ["courses"],
+    "image":"images/cards/course-ud825.png",
+    "lang":"en",
+    "type":"online course"
+  },
+  {
+    "title":"Enroll in the Android Nanodegree",
+    "titleFriendly":"",
+    "summary":"Sign up to learn about Android and receive a certification of your efforts.",
+    "url":"https://www.udacity.com/android-nanodegree",
+    "group":"",
+    "keywords": ["nanodegree"],
+    "tags": ["courses"],
+    "image":"images/cards/course-nanodegree-lg.jpg",
+    "lang":"en",
+    "type":"online course"
+  },
+  {
+    "title":"Advanced Android App Development",
+    "titleFriendly":"",
+    "summary":"Productionize and publish your apps.",
+    "url":"https://www.udacity.com/course/advanced-android-app-development--ud855",
+    "group":"",
+    "keywords": ["android, experts"],
+    "tags": ["courses"],
+    "image":"images/cards/course-ud855.jpg",
+    "lang":"en",
+    "type":"online course"
+  },
+  {
+    "title":"Android Ubiquitous Computing",
+    "titleFriendly":"",
+    "summary":"Extend your apps to Wear, TV, and Auto.",
+    "url":"https://www.udacity.com/course/android-ubiquitous-computing--ud875",
+    "group":"",
+    "keywords": ["wear, tv, auto"],
+    "tags": ["courses"],
+    "image":"images/cards/course-ud875.jpg",
+    "lang":"en",
+    "type":"online course"
+  },
+  {
+    "title":"Google Play Services",
+    "titleFriendly":"",
+    "summary":"Use Google APIs to improve your apps.",
+    "url":"https://www.udacity.com/course/google-play-services--ud876",
+    "group":"",
+    "keywords": ["google, play services, google services"],
+    "tags": ["courses"],
+    "image":"images/cards/course-ud876.jpg",
+    "lang":"en",
+    "type":"online course"
+  },
+  {
+    "title":"Android Design for Developers",
+    "titleFriendly":"",
+    "summary":"Learn how to make your apps material.",
+    "url":"https://www.udacity.com/course/android-design-for-developers--ud862",
+    "group":"",
+    "keywords": ["design, pure, material"],
+    "tags": ["courses"],
+    "image":"images/cards/course-ud862.jpg",
+    "lang":"en",
+    "type":"online course"
+  },
+  {
+    "title":"Android Development for Beginners",
+    "titleFriendly":"",
+    "summary":"Make your first Android app, even if you don't write code.",
+    "url":"https://www.udacity.com/course/android-development-for-beginners--ud837",
+    "group":"",
+    "keywords": ["firstapp",],
+    "tags": ["courses"],
+    "image":"images/cards/course-ud837.jpg",
+    "lang":"en",
+    "type":"online course"
+  },
+  {
+    "title":"Gradle for Android and Java",
+    "titleFriendly":"",
+    "summary":"Build better apps through automation",
+    "url":"https://www.udacity.com/course/gradle-for-android-and-java--ud867",
+    "group":"",
+    "keywords": ["gradle","studio", "sdk"],
+    "tags": ["courses"],
+    "image":"images/cards/course-ud867.jpg",
+    "lang":"en",
+    "type":"online course"
+  },
+  {
+    "title":"Watch Faces for Android Wear",
+    "titleFriendly":"",
+    "summary":"Watch faces let you customize the most prominent UI feature of Android wearables. The API is simple enough for rapid development and flexible enough to build something awesome.",
+    "url":"https://www.youtube.com/watch?v=AK38PJZmIW8&list=PLWz5rJ2EKKc-kIrPiq098QH9dOle-fLef",
+    "group":"",
+    "keywords": ["wear", "wearable", "watch face"],
+    "tags": [],
+    "image":"http://i1.ytimg.com/vi/AK38PJZmIW8/maxresdefault.jpg",
+    "lang":"en",
+    "type":"video"
+  },
+  {
+    "title":"Android Support Library",
+    "titleFriendly":"",
+    "summary":"These essential components help you build a great app that works on the huge variety of Android devices, faster.",
+    "url":"https://www.youtube.com/watch?v=3PIc-DuEU2s&list=PLWz5rJ2EKKc9e0d55YHgJFHXNZbGHEXJX",
+    "group":"",
+    "keywords": ["support", "compatibility"],
+    "tags": [],
+    "image":"http://i1.ytimg.com/vi/3PIc-DuEU2s/maxresdefault.jpg",
+    "lang":"en",
+    "type":"Video"
+  },
+  {
+    "title":"Consistent Design with the AppCompat Support Library",
+    "titleFriendly":"",
+    "summary":"Getting a great looking app doesn't have to be hard: AppCompat, part of the Android Support Library, gives you a consistent design baseline that works on all Android 2.1 or higher devices.",
+    "url":"https://www.youtube.com/watch?v=5Be2mJzP-Uw&list=PLWz5rJ2EKKc9e0d55YHgJFHXNZbGHEXJX",
+    "group":"",
+    "keywords": ["support", "compatibility","design-code"],
+    "tags": [],
+    "image":"http://i1.ytimg.com/vi/5Be2mJzP-Uw/maxresdefault.jpg",
+    "lang":"en",
+    "type":"Video"
+  },
+  {
+    "title":"Introducing Gradle",
+    "titleFriendly":"",
+    "summary":"Android Studio uses an entirely new and flexible Gradle-based build system. You will be able to create multiple build variants for a single project, manage library dependencies and always be sure that your application builds correctly across different environments.",
+    "url":"https://www.youtube.com/watch?v=cD7NPxuuXYY&list=PLWz5rJ2EKKc8I9gHTMh5yKkwRRGE8BjbQ",
+    "group":"",
+    "keywords": ["tools", "studio","gradle"],
+    "tags": [],
+    "image":"http://i1.ytimg.com/vi/cD7NPxuuXYY/maxresdefault.jpg",
+    "lang":"en",
+    "type":"Video"
+  },
+  {
+    "title":"Android Studio Layout Editor",
+    "titleFriendly":"",
+    "summary":"Android Studio includes a rich, visual layout editor that helps developers create better user interfaces. It eliminates the need to deploy the APK on a real device with each change, making iterations faster and helping eliminate common errors earlier in the development process.",
+    "url":"https://www.youtube.com/watch?v=JLLnhwtDoHw&list=PLWz5rJ2EKKc8I9gHTMh5yKkwRRGE8BjbQ",
+    "group":"",
+    "keywords": ["tools", "studio","layout"],
+    "tags": [],
+    "image":"http://i1.ytimg.com/vi/JLLnhwtDoHw/maxresdefault.jpg",
+    "lang":"en",
+    "type":"Video"
+  },
+  {
+    "title":"Debugging and testing in Android Studio",
+    "titleFriendly":"",
+    "summary":"Learn about new debugger features in Android Studio 1.2: value inlining, quick access to referring objects and a Java .class decompiler, just to name a few. See some new tools and views that let you monitor the CPU and memory performance of your app from within the IDE. ",
+    "url":"https://www.youtube.com/watch?v=2I6fuD20qlY&list=PLWz5rJ2EKKc8I9gHTMh5yKkwRRGE8BjbQ",
+    "group":"",
+    "keywords": ["tools", "studio","debugging","profiling","performance"],
+    "tags": [],
+    "image":"http://i1.ytimg.com/vi/2I6fuD20qlY/maxresdefault.jpg",
+    "lang":"en",
+    "type":"Video"
+  },
+  {
+    "tags": [
+      "android",
+      "developerstory",
+      "googleplay",
+      "featured"
+    ],
+    "title": "Android Developer Story: Jelly Button Games — Growing globally through data driven development",
+    "type": "youtube",
+    "url": "http://www.youtube.com/watch?v=Pd49vTkvu0U"
+  },
+  {
+    "title":"Scale with Google Cloud Platform",
+    "titleFriendly":"",
+    "summary":"Build, test, and deploy applications on Google's highly-scalable and reliable infrastructure for your web, mobile and backend solutions.",
+    "url":"https://cloud.google.com/docs/",
+    "group":"",
+    "keywords": [],
+    "tags": [],
+    "image":"images/cards/cloud-platform_2x.png",
+    "lang":"en",
+    "type":"distribute"
+  },
+  {
+    "title":"Opportunities & Programs",
+    "titleFriendly":"",
+    "summary":"Take advantage of the many ways you can distribute your app to consumers, students, and businesses through Google Play.",
+    "url":"distribute/googleplay/index.html#opportunities",
+    "group":"",
+    "keywords": [],
+    "tags": [],
+    "image":"images/cards/program-edu_2x.jpg",
+    "lang":"en",
+    "type":"distribute"
+  },
+  {
+    "title":"Android for Work",
+    "titleFriendly":"",
+    "summary":"Learn more about how Android for Work makes your favorite phones and tablets the perfect business tools.",
+    "url":"http://www.android.com/work/",
+    "group":"",
+    "keywords": ["work", "enterprise", "emm"],
+    "tags": [],
+    "image":"images/cards/card-android-work_2x.png",
+    "lang":"en",
+    "type":"about"
+  },
+  {
+    "title":"Android for Work DevBytes",
+    "titleFriendly":"",
+    "summary":"Watch the videos in this playlist to understand more about Android for Work and get tips on developing enterprise apps.",
+    "url":"https://www.youtube.com/watch?v=jQWB_-o1kz4&list=PLOU2XLYxmsIKAK2Bhv19H2THwF-22O5WX",
+    "group":"",
+    "keywords": ["work", "enterprise", "emm"],
+    "tags": [],
+    "image":"http://i1.ytimg.com/vi/jQWB_-o1kz4/maxresdefault.jpg",
+    "lang":"en",
+    "type":"about"
+  },
+  {
+    "title":"Discover YouTube cards",
+    "titleFriendly":"",
+    "summary":"Find out more about YouTube cards, the options available, and how to use them to get the most from your YouTube content.",
+    "url":"https://support.google.com/youtube/answer/6140493",
+    "group":"",
+    "keywords": ["youtube", "video", "users", "installs"],
+    "tags": [],
+    "image":"images/cards/card-youtube_2x.png",
+    "lang":"en",
+    "type":"distribute"
+  },
+    {
+    "title":"What is YouTube account good standing?",
+    "titleFriendly":"",
+    "summary":"Learn what it means for an account to be in good standing from the YouTube Help Center.",
+    "url":"https://support.google.com/youtube/answer/2797387",
+    "group":"",
+    "keywords": ["youtube", "video", "users", "installs"],
+    "tags": [],
+    "image":"images/cards/card-youtube_2x.png",
+    "lang":"en",
+    "type":"distribute"
+  },
+
+
+  {
     "lang": "ja",
     "title": "Gaming Everywhere",
     "titleFriendly": "",
@@ -2313,4 +3216,45 @@
     "image": "distribute/images/advertising.jpg",
     "type": "distribute"
   }
-]);
\ No newline at end of file
+]);
+
+var CAROUSEL_OVERRIDE = {
+  "about/versions/lollipop.html": {
+    "image": "images/home/hero-lollipop_2x.png",
+    "heroColor": "#263238",
+    "heroInvert": true,
+    "title": "Android 5.0 Lollipop",
+    "summary": "The Android 5.0 update adds a variety of new features for your apps, such as notifications on the lock screen, an all-new camera API, OpenGL ES 3.1, the new Material design interface, and much more."
+  },
+  "distribute/googleplay/families/about.html": {
+    "image": "images/distribute/hero-family.jpg",
+    "title": "Designed for Families",
+    "summary": "Introducing a new Google Play section to promote family friendly apps. Your apps in the program can benefit from enhanced discoverability in addition to maintaining their existing categories, rankings, and reviews elsewhere on the Google Play store."
+  },
+  "http://www.youtube.com/watch?v=Pd49vTkvu0U&list=PLWz5rJ2EKKc9ofd2f-_-xmUi07wIGZa1c": {
+    "image": "images/distribute/hero-jelly-button.jpg",
+    "title": "How Jelly Button Games are growing globally through data",
+    "summary": "To really understand their users, Jelly Button Games analyses over 3 billion events each month using Google Analytics and Google BigQuery."
+  },
+  "http://www.youtube.com/watch?v=700gYRkhkLM&list=PLWz5rJ2EKKc9ofd2f-_-xmUi07wIGZa1c": {
+    "image": "images/distribute/hero-outfit7.jpg",
+    "title": "Outfit7 — Building an entertainment company with Google",
+    "summary": "Outfit7, creators of My Talking Tom and My Talking Angela, offer a complete entertainment experience to users spanning mobile apps, user generated and original YouTube content, and a range of toys, clothing, and accessories...."
+  },
+  "http://www.youtube.com/watch?v=MPnH7h12h0U&list=PLWz5rJ2EKKc9ofd2f-_-xmUi07wIGZa1c": {
+    "image": "images/distribute/hero-haystack.jpg",
+    "summary": "Haystack TV built a scalable business with six employees and Android TV. Two weeks was all it took for them to bring their mobile app to the big screen."
+  },
+  "http://www.youtube.com/watch?v=ekxABqJeRBc&list=PLWz5rJ2EKKc9ofd2f-_-xmUi07wIGZa1c": {
+    "image": "images/distribute/hero-ginlemon.jpg",
+    "title": "How GinLemon is breaking through with Google Play",
+    "summary": "Meet Vincenzo Colucci, developer and founder of GinLemon, which started as a summer holiday joke and has now become a successful global app business on Google Play based in Manfredonia, southern Italy."
+  },
+  "distribute/googleplay/guide.html": {
+    "heroColor": "#fcb94e",
+    "image": "images/distribute/hero-g-play-guidebooks_2x.png",
+    "title": "Finding Success on Google Play",
+    "summary": "We’ve created a downloadable guide to help you find success with your app or game business on Google Play. In it, you’ll find features, tips, and best practices to help you build an effective strategy.",
+    "tags": []
+  }
+};
\ No newline at end of file
diff --git a/docs/html/jd_tag_helpers.js b/docs/html/jd_tag_helpers.js
index 7538e4d..f03b1d7 100644
--- a/docs/html/jd_tag_helpers.js
+++ b/docs/html/jd_tag_helpers.js
@@ -13,6 +13,7 @@
   GOOGLE_RESOURCES,
   GUIDE_RESOURCES,
   SAMPLES_RESOURCES,
+  PREVIEW_RESOURCES,
   TOOLS_RESOURCES,
   TRAINING_RESOURCES,
   YOUTUBE_RESOURCES,
@@ -70,6 +71,7 @@
   'google': GOOGLE_RESOURCES,
   'guide': GUIDE_RESOURCES,
   'samples': SAMPLES_RESOURCES,
+  'preview': PREVIEW_RESOURCES,
   'tools': TOOLS_RESOURCES,
   'training': TRAINING_RESOURCES,
   'youtube': YOUTUBE_RESOURCES,
@@ -86,6 +88,7 @@
   {map:GOOGLE_BY_TAG,arr:GOOGLE_RESOURCES},
   {map:GUIDE_BY_TAG,arr:GUIDE_RESOURCES},
   {map:SAMPLES_BY_TAG,arr:SAMPLES_RESOURCES},
+  {map:PREVIEW_BY_TAG,arr:PREVIEW_RESOURCES},
   {map:TOOLS_BY_TAG,arr:TOOLS_RESOURCES},
   {map:TRAINING_BY_TAG,arr:TRAINING_RESOURCES},
   {map:YOUTUBE_BY_TAG,arr:YOUTUBE_RESOURCES},
diff --git a/docs/html/preview/api-changes.jd b/docs/html/preview/api-changes.jd
new file mode 100644
index 0000000..e4be2a1
--- /dev/null
+++ b/docs/html/preview/api-changes.jd
@@ -0,0 +1,338 @@
+page.title=Behavior Changes
+page.keywords=preview,sdk,compatibility
+sdk.platform.apiLevel=23
+@jd:body
+
+<div id="qv-wrapper">
+<div id="qv">
+
+<h2>In this document</h2>
+
+<ol id="toc44" class="hide-nested">
+    <li><a href="#behavior-runtime-permissions">Runtime Permissions</a></li>
+    <li><a href="#behavior-notifications">Notifications</a></li>
+    <li><a href="#behavior-openssl">OpenSSL</a></li>
+    <li><a href="#behavior-project-volta">Project Volta</a>
+        <ol>
+            <li><a href="#behavior-doze">Doze Mode</a></li>
+            <li><a href="#behavior-app-standby">App Standby Mode</a></li>
+        </ol>
+    </li>
+    <li><a href="#behavior-adoptable-storage">Adoptable Storage Devices</a></li>
+    <li><a href="#behavior-apache-http-client">Apache HTTP Client Removal</a></li>
+    <li><a href="#behavior-audiomanager-Changes">AudioManager Changes</a></li>
+    <li><a href="#behavior-test-selection">Text Selection</a></li>
+    <li><a href="#behavior-keystore">Android Keystore Changes</a></li>
+    <li><a href="#behavior-themeable-colorstatelists">Themeable ColorStateLists</a></li>
+    <li><a href="#night-mode">Night Mode</a></li>
+    <li><a href="#behavior-art-runtime">ART Runtime</a></li>
+    <li><a href="#behavior-afw">Android for Work Changes</a></li>
+</ol>
+
+<h2>API Differences</h2>
+<ol>
+<li><a href="">API level 22 to M &raquo;</a> </li>
+</ol>
+
+
+<h2>See Also</h2>
+<ol>
+<li><a href="{@docRoot}preview/api-overview.html">M Developer Preview API Overview</a> </li>
+</ol>
+
+</div>
+</div>
+
+<p>API Level: M</p>
+<p>Along with new features and capabilities, M includes a variety of
+system changes and API behavior changes. This document highlights
+some of the key changes that you should be understand and account for in your apps.</p>
+
+<p>If you have previously published an app for Android, be aware that your app
+  might be affected by these changes in M.</p>
+
+<h2 id="behavior-runtime-permissions">Runtime Permissions</h1>
+<p>This release introduces a new runtime permissions model, where users can now directly manage
+their app permissions at runtime. This model gives users improved visibility and control over
+permissions, while streamlining the installation and auto-update processes for app developers.
+Users can set permissions on or off for all apps running on Android M. However, apps that don’t
+target M cannot request permissions at runtime.</p>
+
+<p>On your apps that target M, make sure to check and request for permissions at
+runtime. To determine if your app has been granted a permission, call the
+new {@code Context.checkSelfPermission()} method. To request for a permission, call the new
+{@code Activity.requestPermission()} method.</p>
+
+<p>For more information on supporting the new permissions model in your app, see the
+<a href="{@docRoot}preview/features/runtime-permissions.html">
+Android M Runtime Permissions guide</a>.</p>
+
+<h2 id="behavior-openssl">OpenSSL</h2>
+<p>Android is moving away from OpenSSL to the
+<a href="https://boringssl.googlesource.com/boringssl/" class="external-link">BoringSSL</a>
+library. If you’re using the Android NDK in your app, don't link against cryptographic libraries
+that are not a part of the NDK API, such as {@code libcrypto.so} and {@code libssl.so}. These
+libraries are not public APIs, and may change or break without notice across releases and devices.
+In addition, you may expose yourself to security vulnerabilities. Instead, modify your
+native code to call the Java cryptography APIs via JNI or to statically link against a
+cryptography library of your choice.</p>
+
+<h2 id="behavior-project-volta">Project Volta</h2>
+<p>This release introduces new power-saving optimizations for idle devices and apps.</p>
+
+<h3 id="behavior-doze">Doze mode</h3>
+<p>If a device is unplugged and not used for up to an hour, it goes into <em>doze</em> mode where
+it attempts to keep the system in a sleep state. In this mode, devices may briefly resume normal
+operations for up to 5 minutes every few hours so that app syncing can occur and the system can
+perform any pending operations.</p>
+
+<p>The following restrictions apply to your apps while in device doze mode:</p>
+<ul>
+<li>Network access is disabled</li>
+<li>Alarms scheduled with the {@link android.app.AlarmManager} class are disabled, except for
+alarms that you've set with the
+{@link android.app.AlarmManager#setAlarmClock(android.app.AlarmManager.AlarmClockInfo,android.app.PendingIntent) setAlarmClock()}
+method</li>
+<li>WiFi scans are not performed</li>
+<li>Syncs and jobs for your sync adapters and {@link android.app.job.JobScheduler} are not
+permitted to run</li>
+</ul>
+</p>
+<p>When the system comes out of doze mode, it executes jobs and syncs that are pending.</p>
+
+<h3 id="behavior-app-standby">App standby mode</h3>
+<p>In M, the system may determine that apps are idle when they are not in active use by the user.
+Your app goes into <em>app standby</em> mode after two days unless the system detects any of these
+signals:</p>
+
+<ul>
+<li>The app has a process currently in the foreground (either as an activity or foreground service,
+or in use by another activity or foreground service)</li>
+<li>The app generates a notification that the user can see</li>
+<li>The user explicitly asks for the app to remain running</li>
+</ul>
+
+<p>If the system is running on battery power, apps that are in standby mode will have their
+network access disabled and their syncs and jobs suspended. When the system is plugged into a power
+supply, it brings an app out of standby mode and executes any jobs and syncs that are pending.</p>
+
+<p>Apps that use <a href="{@docRoot}google/gcm/index.html">Google Cloud Messaging</a> will
+continue to receive messages even if they are idle. When the system is plugged into a power
+supply, apps resume normal operations and can run any pending syncs and jobs.</p>
+
+<p>You can test this feature by connecting a device running M to your development machine and
+calling the following commands:
+</p>
+<pre>
+$ adb shell am broadcast -a android.os.action.DISCHARGING
+$ adb shell am set-idle &lt;packageName&gt; true
+$ adb shell am set-idle &lt;packageName&gt; false
+$ adb shell am get-idle &lt;packageName&gt;
+</pre>
+
+<h2 id="behavior-adoptable-storage">Adoptable Storage Devices</h2>
+<p>
+In M, users can adopt external storage devices such as SD cards. Adopting an external storage
+device encrypts and formats the device to behave like internal storage. This feature allows users
+to move both apps and private data of those apps between storage devices. When moving apps, the
+system respects the <a href="{@docRoot}guide/topics/manifest/manifest-element.html#install">
+{@code android:installLocation}</a> preference in the manifest.</p>
+
+<p>If your app accesses the following APIs or fields, be aware that the file paths they return
+will dynamically change when the app is moved between internal and external storage devices.
+When building file paths, it is strongly recommended that you always call these APIs dynamically.
+Don’t use hardcoded file paths or persist fully-qualified file paths that were built previously.</p>
+
+<ul>
+<li>{@link android.content.Context} methods:
+    <ul>
+        <li>{@link android.content.Context#getFilesDir() getFilesDir()}</li>
+        <li>{@link android.content.Context#getCacheDir() getCacheDir()}</li>
+        <li>{@link android.content.Context#getCodeCacheDir() getCodeCacheDir()}</li>
+        <li>{@link android.content.Context#getDatabasePath(java.lang.String) getDatabasePath()}</li>
+        <li>{@link android.content.Context#getDir(java.lang.String,int) getDir()}</li>
+        <li>{@link android.content.Context#getNoBackupFilesDir() getNoBackupFilesDir()}</li>
+        <li>{@link android.content.Context#getFileStreamPath(java.lang.String) getFileStreamPath()}</li>
+        <li>{@link android.content.Context#getPackageCodePath() getPackageCodePath()}</li>
+        <li>{@link android.content.Context#getPackageResourcePath() getPackageResourcePath()}</li>
+    </ul>
+</li>
+<li>{@link android.content.pm.ApplicationInfo} fields:
+    <ul>
+        <li>{@link android.content.pm.ApplicationInfo#dataDir dataDir}</li>
+        <li>{@link android.content.pm.ApplicationInfo#sourceDir sourceDir}</li>
+        <li>{@link android.content.pm.ApplicationInfo#nativeLibraryDir nativeLibraryDir}</li>
+        <li>{@link android.content.pm.ApplicationInfo#publicSourceDir publicSourceDir}</li>
+        <li>{@link android.content.pm.ApplicationInfo#splitSourceDirs splitSourceDirs}</li>
+        <li>{@link android.content.pm.ApplicationInfo#splitPublicSourceDirs splitPublicSourceDirs}</li>
+    </ul>
+</li>
+</ul>
+
+<p>To debug this feature in the developer preview, you can enable adoption of a USB drive that is
+connected to an Android device through a USB On-The-Go (OTG) cable, by running these
+commands:</p>
+
+<pre>
+$ adb root
+$ sleep 2
+$ adb shell setprop persist.fw.force_adoptable 1
+$ adb reboot
+</pre>
+
+<h2 id="behavior-apache-http-client">Apache HTTP Client Removal</h2>
+<p>This release removes support for the Apache HTTP client. If your app is using this client and
+targets Android 2.3 (API level 9) or higher, use the {@link java.net.HttpURLConnection} class
+instead. This API is more efficient because it reduces network use through transparent compression
+and response caching, and minimizes power consumption. To continue using the Apache HTTP APIs, you
+must first declare the following compile-time dependency in your {@code build.gradle} file:
+</p>
+<pre>
+android {
+    compileSdkVersion M
+    useLibrary 'org.apache.http.legacy'
+}
+</pre>
+
+<h2 id="behavior-audiomanager-Changes">AudioManager Changes</h2>
+<p>Setting the volume directly or muting specific streams via the {@link android.media.AudioManager}
+class is no longer supported. The {@link android.media.AudioManager#setStreamSolo(int,boolean)
+setStreamSolo()} method is deprecated, and you should call the
+{@code AudioManager.requestAudioFocus()} method instead. Similarly, the
+{@link android.media.AudioManager#setStreamMute(int,boolean) setStreamMute()} method is
+deprecated; instead, call the {@code AudioManager.adjustStreamVolume()} method
+and pass in the direction value {@code ADJUST_MUTE} or {@code ADJUST_UNMUTE}.</p>
+
+<h2 id="behavior-test-selection">Text Selection</h2>
+
+<img src="{@docRoot}preview/images/text-selection.gif"
+style="float:right; margin:0 0 20px 30px" width="270" height="480" />
+
+<p>When users selects text in your app, you can now display text selection actions such as
+<em>Cut</em>, <em>Copy</em>, and <em>Paste</em> in a
+<a href="http://www.google.com/design/spec/patterns/selection.html#selection-text-selection"
+class="external-link">floating toolbar</a>. The user interaction implementation is similar to that
+for the contextual action bar, as described in
+<a href="{@docRoot}guide/topics/ui/menus.html#CABforViews">
+Enabling the contextual action mode for individual views</a>.</p>
+
+<p>To implement a floating toolbar for text selection, make the following changes in your existing
+apps:</p>
+<ol>
+<li>In your {@link android.view.View} or {@link android.app.Activity} object, change your
+{@link android.view.ActionMode} calls from
+{@code startActionMode(Callback)} to {@code startActionMode(Callback, ActionMode.TYPE_FLOATING)}.</li>
+<li>Take your existing implementation of ActionMode.Callback and make it extend
+{@code ActionMode.Callback2} instead.</li>
+<li>Override the {@code Callback2.onGetContentRect()} method to provide the coordinates of the
+content {@link android.graphics.Rect} object (such as a text selection rectangle) in the view.</li>
+<li>If the rectangle positioning is no longer valid, and this is the only element to be invalidated,
+call the {@code ActionMode.invalidateContentRect()} method.</li>
+</ol>
+
+<p>If you are using <a href="{@docRoot}tools/support-library/index.html">
+Android Support Library</a> revision 22.2, be aware that floating toolbars are not
+backward-compatible and appcompat takes control over {@link android.view.ActionMode} objects by
+default. This prevents floating toolbars from being displayed in M. To enable
+{@link android.view.ActionMode} support in an
+{@link android.support.v7.app.AppCompatActivity}, call
+{@code android.support.v7.app.AppCompatActivity.getDelegate()}, then call
+{@code android.support.v7.app.AppCompatDelegate.setHandleNativeActionModesEnabled()} on the returned
+{@link android.support.v7.app.AppCompatDelegate} object and set the input
+parameter to {@code false}. This call returns control of {@link android.view.ActionMode} objects to
+the framework. In devices running M, that allows the framework to support
+{@link android.support.v7.app.ActionBar} or floating toolbar modes, while on pre-M devices, only the
+{@link android.support.v7.app.ActionBar} modes are supported.</p>
+
+<h2 id="behavior-keystore">Android Keystore Changes</h2>
+<p>Starting this release, the
+<a href="{@docRoot}training/articles/keystore.html">Android Keystore provider</a> no longer supports
+DSA. ECDSA is still supported.</p>
+
+<p>Keys which do not require encryption at rest will no longer be deleted when secure lock screen
+is disabled or reset (for example, by the user or a Device Administrator). Keys which require
+encryption at rest will be deleted during these events.</p>
+
+<h2 id="behavior-themeable-colorstatelists">Themeable ColorStateLists</h2>
+<p>Theme attributes are now supported in
+{@link android.content.res.ColorStateList} for devices running M. The
+{@link android.content.res.Resources#getColorStateList(int) getColorStateList()} and
+{@link android.content.res.Resources#getColor(int) getColor()} methods have been deprecated. If
+you are calling these APIs, call the new {@code Context.getColorStateList()} or
+{@code Context.getColor()} methods instead. These methods are also available in the
+v4 appcompat library via {@link android.support.v4.content.ContextCompat}.</p>
+
+<h2 id="night-mode">Night Mode (User-configurable Dark Theme)</h2>
+<p>
+Support for the {@code -night} resource qualifier has been updated in M. Previously, night mode was
+only available when a device was docked and in car mode. Starting in M, night mode is available on
+all devices and is user-configurable via <em>Settings > Display > Theme</em>. You can adjust this
+setting globally using {@link android.app.UiModeManager#setNightMode(int) setNightMode()}. The
+Dark theme corresponds to {@link android.app.UiModeManager#MODE_NIGHT_YES}. When the device is in
+night mode, the resource framework will prefer resources that have the -night qualifier. To
+take advantage of user-configurable Dark mode in your app, extend from the
+{@code Theme.Material.DayNight} set of themes rather than {@code Theme.Material} or
+{@code Theme.Material.Light}.
+</p>
+
+<h2 id="behavior-art-runtime">ART Runtime</h2>
+<p>The ART runtime now properly implements access rules for the
+{@link java.lang.reflect.Constructor#newInstance(java.lang.Object...) newInstance()} method. This
+change fixes a problem where Dalvik was checking access rules incorrectly in previous versions.
+If your app uses the
+{@link java.lang.reflect.Constructor#newInstance(java.lang.Object...) newInstance()} method and you
+want to override access checks, call the
+{@link java.lang.reflect.Constructor#setAccessible(boolean) setAccessible()} method with the input
+parameter set to {@code true}. If your app uses the
+<a href="{@docRoot}tools/support-library/features.html#v7">v7 appcompat library</a> or the
+<a href="{@docRoot}tools/support-library/features.html#v7-recyclerview">v7 recyclerview library</a>,
+you must update your app to use to the latest versions of these libraries. Otherwise, make sure that
+any custom classes referenced from XML are updated so that their class constructors are accessible.</p>
+
+<p>The M release updates the behavior of the dynamic linker. The dynamic linker now understands the
+difference between a library’s {@code soname} and its path
+(<a href="https://code.google.com/p/android/issues/detail?id=6670" class="external-link">
+public bug 6670</a>), and search by {@code soname} is now
+implemented. Apps which previously worked that have bad {@code DT_NEEDED} entries
+(usually absolute paths on the build machine’s file system) may fail when loaded on M.</p>
+
+<p>The {@code dlopen(3) RTLD_LOCAL} flag is now correctly implemented in M. Note that
+{@code RTLD_LOCAL} is the default, so calls to {@code dlopen(3)} that didn’t explicitly use
+{@code RTLD_LOCAL} will be affected (unless your app explicitly used {@code RTLD_GLOBAL}). With
+{@code RTLD_LOCAL}, symbols will not be made available to libraries loaded by later calls to
+{@code dlopen(3)} (as opposed to being referenced by {@code DT_NEEDED} entries).</p>
+</p>
+
+<h2 id="behavior-afw">Android for Work Changes</h2>
+<p>This release includes the following behavior changes for Android for Work:</p>
+<ul>
+<li><strong>Work contacts in personal contexts.</strong> Google Messenger and the Google Dialer
+Call Log now display work contacts when the user views past messages or calls. Furthermore, both
+work and personal contacts are now available to devices over Bluetooth, but you can hide work
+profile contacts through a device policy by calling the new
+{@code DevicePolicyManager.setBluetoothContactSharingDisabled()} method. Initiating a call or
+creating a new message will only show personal contacts, as consistent with the experience in
+Android 5.0.
+</li>
+<li><strong>WiFi configuration removal:</strong> WiFi configurations added by a Profile Owner
+(for example, through calls to the
+{@link android.net.wifi.WifiManager#addNetwork(android.net.wifi.WifiConfiguration)
+addNetwork()} method) are now removed if that work profile is deleted.</li>
+<li><strong>WiFi configuration lockdown:</strong> Any WiFi configuration created by an active Device
+Owner can no longer be modified or deleted by the user. The user can still create and
+modify their own WiFi configurations, so long as the {@link android.os.UserManager} constant
+{@link android.os.UserManager#DISALLOW_CONFIG_WIFI} has not been set for that user.</li>
+<li><strong>VPN in Settings:</strong> VPN apps are now visible in <em>Settings > More > VPN</em>.
+Additionally, the notifications that accompany VPN usage are now specific to whether that VPN is
+configured for a managed profile or the entire device.</li>
+<li><strong>Work status notification:</strong> A status bar briefcase icon now appears whenever
+an app from the managed profile has an activity in the foreground. Furthermore, if the device is
+unlocked directly to the activity of an app in the managed profile, a toast is displayed notifying
+the user that they are within the work profile.
+</li>
+<li><strong>Download Work Policy Controller via Google account addition:</strong> When a Google
+account that requires management via a Work Policy Controller (WPC) app is added to a device
+outside of a managed context, the add account flow now prompts the user to install the
+appropriate WPC. This behavior also applies to accounts added via
+<em>Settings > Accounts</em> in the initial device setup wizard.</li>
+</ul>
diff --git a/docs/html/preview/api-overview.jd b/docs/html/preview/api-overview.jd
new file mode 100644
index 0000000..5ab4b89
--- /dev/null
+++ b/docs/html/preview/api-overview.jd
@@ -0,0 +1,369 @@
+page.title=API Overview
+page.keywords=preview,sdk,compatibility
+sdk.platform.apiLevel=22-mnc
+page.image=images/cards/card-key-changes_16-9_2x.png
+@jd:body
+
+
+<div id="qv-wrapper">
+<div id="qv">
+
+<h2>In this document
+    <a href="#" onclick="hideNestedItems('#toc44',this);return false;" class="header-toggle">
+        <span class="more">show more</span>
+        <span class="less" style="display:none">show less</span></a></h2>
+
+<ol id="toc44" class="hide-nested">
+  <li><a href="#backup">Auto Backup for Apps</a></li>
+  <li><a href="#notifications">Notifications</a></li>
+  <li><a href="#authentication">Authentication</a>
+    <ul>
+      <li><a href="#fingerprint-authentication">Fingerprint Authentication</a></li>
+      <li><a href="#confirm-credentials">Confirm Credentials</a></li>
+    </ul>
+  </li>
+  <li><a href="#direct-share">Direct Share</a></li>
+  <li><a href="#voice-interactions">Voice Interactions</a></li>
+  <li><a href="#bluetooth-stylus">Bluetooth Stylus Support</a></li>
+  <li><a href="#audio">New Audio Features</a></li>
+  <li><a href="#afw">New Android for Work Features</a></li>
+</ol>
+
+<h2>API Differences</h2>
+<ol>
+<li><a href="">API level 22 to M &raquo;</a> </li>
+</ol>
+
+</div>
+</div>
+
+<p>The M Developer Preview gives you an advance look at the upcoming release
+for the Android platform, which offers new features for users and app
+developers. This document provides an introduction to the most notable APIs.</p>
+
+<p>The M Developer Preview is intended for <strong>developer early
+adopters</strong> and <strong>testers</strong>. If you are interested in
+influencing the direction of the Android framework,
+<a href="{@docRoot}preview/setup-sdk.html">give the M Developer Preview a
+try</a> and send us your feedback!</p>
+
+<p class="caution"><strong>Caution:</strong> Do not not publish apps
+that use the M Developer Preview to the Google Play store.</p>
+
+<p class="note"><strong>Note:</strong> This document often refers to classes and
+methods that do not yet have reference material available on <a
+href="{@docRoot}">developer.android.com</a>. These API elements are
+formatted in {@code code style} in this document (without hyperlinks). For the
+preliminary API documentation for these elements, download the <a
+href="http://storage.googleapis.com/androiddevelopers/preview/m-developer-preview-reference.zip">
+preview reference</a>.</p>
+
+<h3>Important behavior changes</h3>
+
+<p>If you have previously published an app for Android, be aware that your app might be affected
+by changes in M.</p>
+
+<p>Please see <a href="api-changes.html">Behavior Changes</a> for complete information.</p>
+
+<h2 id="backup">Auto Backup for Apps</h2>
+<p>The system now performs automatic full data backup and restore for apps. This behavior is
+enabled by default for apps targeting M; you do not need to add any additional code. If users
+delete their Google account, their backup data is deleted as well.</p>
+<p>To learn how this feature works and how to configure what to back up on the file system,
+see the <a href="">App Backup for Apps guide</a>.</p>
+
+<h2 id="notifications">Notifications</h2>
+<p>M adds the following API changes for notifications:</p>
+<ul>
+  <li>New {@code NotificationListenerService.INTERRUPTION_FILTER_ALARMS} filter level that
+    corresponds to the new <em>Alarms only</em> do not disturb mode.</li>
+  <li>New {@code Notification.CATEGORY_REMINDER} category value that is used to distinguish
+  user-scheduled reminders from other events
+  ({@link android.app.Notification#CATEGORY_EVENT}) and alarms
+  ({@link android.app.Notification#CATEGORY_ALARM}).</li>
+  <li>New {@code android.graphics.drawable.Icon} class which can be attached to your notifications
+    via the Notification.Builder.setIcon() and Notification.Builder.setLargeIcon() methods.</li>
+  <li>New {@code NotificationManager.getActiveNotifications()} method that allows your apps to
+    find out which of their notifications are currently alive.</li>
+</ul>
+
+<h2 id="authentication">Authentication</h2>
+<p>The M release offers new APIs to let you authenticate users by using their fingerprint scans on
+supported devices, and check how recently the user was last authenticated using a device unlocking
+mechanism (such as a lockscreen password). Use these APIs in conjunction with
+the <a href="{@docRoot}training/articles/keystore.html">Android Keystore system</a>.</p>
+
+<h3 id="fingerprint-authentication">Fingerprint Authentication</h3>
+
+<p>To authenticate users via fingerprint scan, get an instance of the new
+{@code android.hardware.fingerprint.FingerprintManager} class and call the
+{@code FingerprintManager.authenticate()} method. Your app must be running on a device with a
+fingerprint sensor. You must implement the user interface for the fingerprint
+authentication flow on your app, and use the standard fingerprint Android icon in your UI.
+If you are developing multiple apps that use fingerprint authentication, note that each app must
+authenticate the user’s fingerprint independently.
+</p>
+
+<img src="{@docRoot}preview/images/fingerprint-screen_2x.png"
+srcset="{@docRoot}preview/images/fingerprint-screen.png 1x, preview/images/fingerprint-screen_2x.png 2x"
+style="margin:0 0 10px 20px" width="282" height="476" />
+
+<p>To use this feature in your app, first add the {@code USE_FINGERPRINT} permission in your
+manifest.</p>
+
+<pre>
+&lt;uses-permission
+        android:name="android.permission.USE_FINGERPRINT" /&gt;
+</pre>
+
+<p>The following snippet shows how you might listen for fingerprint events in your
+{@code FingerprintManager.AuthenticationCallback} implementation.</p>
+
+<pre>
+// Call this to start listening for fingerprint events
+public void startListening(FingerprintManager.CryptoObject cryptoObject) {
+    if (!isFingerprintAuthAvailable()) {
+        return;
+    }
+    mCancellationSignal = new CancellationSignal();
+    mSelfCancelled = false;
+    mFingerprintManager.authenticate(cryptoObject,
+            mCancellationSignal, this, 0 /* flags */);
+    // Icon to display when prompting users to start a fingerprint scan
+    mIcon.setImageResource(R.drawable.ic_fp_40px);
+}
+
+// Helper method to check if the device supports fingerprint
+// scanning and if the user has enrolled at least one fingerprint.
+public boolean isFingerprintAuthAvailable() {
+    return mFingerprintManager.isHardwareDetected()
+        &amp;&amp; mFingerprintManager.hasEnrolledFingerprints();
+}
+</pre>
+
+<h3 id="confirm-credentials">Confirm Credentials</h3>
+<p>Your app can authenticate users based on how recently they last unlocked their device. You can
+use the same public or secret key to authenticate users into multiple apps. This feature frees
+users from having to remember additional app-specific passwords, and avoids the need for you to
+implement your own authentication user interface.</p>
+
+<p>You can set your own authentication policy by setting constraints against the key that you are
+generating or importing. To set the constraints for using a key, use the
+{@code android.security.KeyPairGeneratorSpec.Builder} and
+{@code android.security.KeyGeneratorSpec.Builder} classes for public key pairs and secret keys
+respectively. If you are importing keys, use the {@link android.security.KeyStoreParameter.Builder}
+class to set your constraints.</p>
+
+<p>The following example shows how you might create a symmetric key in the Keystore which can only be
+used if the user has successfully unlocked the device within the last 5 minutes.</p>
+
+<pre>
+private void createKey() {
+    // Generate a key to decrypt payment credentials, tokens, etc.
+    // This will most likely be a registration step for the user when
+    // they are setting up your app.
+    try {
+        KeyStore ks = KeyStore.getInstance("AndroidKeyStore");
+        ks.load(null);
+        KeyGenerator keyGenerator = KeyGenerator.getInstance("AES",
+                "AndroidKeyStore");
+        keyGenerator.init(new KeyGeneratorSpec.Builder(this)
+                // Alias of the entry in Android KeyStore where the key will appear
+                .setAlias(KEY_NAME)
+                // Key use constraints
+                .setPurposes(KeyStoreKeyProperties.Purpose.ENCRYPT
+                    | KeyStoreKeyProperties.Purpose.DECRYPT)
+                .setBlockModes("CBC")
+                .setUserAuthenticationRequired(true)
+                // Require that the user has unlocked in the last 5 minutes
+                .setUserAuthenticationValidityDurationSeconds(5 * 60)
+                .setEncryptionPaddings("PKCS7Padding")
+                .build());
+        keyGenerator.generateKey();
+    } catch (NoSuchAlgorithmException | NoSuchProviderException
+            | InvalidAlgorithmParameterException | KeyStoreException
+            | CertificateException | IOException e) {
+          throw new RuntimeException(e);
+    }
+}
+</pre>
+
+<p>To determine the last time users logged into their account, call the
+{@code android.accounts.AccountManager.confirmCredentials()} method. If the call is successful, the
+method returns an bundle that includes a {@code KEY_LAST_AUTHENTICATED_TIME} value which indicates
+the last time, in milliseconds, that the credential for that account was validated or created.</p>
+
+<h2 id="direct-share">Direct Share</h2>
+
+<img src="{@docRoot}preview/images/direct-share-screen_2x.png"
+srcset="{@docRoot}preview/images/direct-share-screen.png 1x, preview/images/direct-share-screen_2x.png 2x"
+style="float:right; margin:0 0 20px 30px" width="312" height="385" />
+
+<p>This release provides you with APIs to makes sharing intuitive and quick for users. You can now
+define <em>deep links</em> that target a specific activity in your app. These deep links are
+exposed to users via the <em>Share</em> menu. This feature allows users to share content to
+targets, such as contacts, within other apps. For example, the deep link might launch an
+activity in another social network app, which lets the user share content directly to a specific
+friend or community in that app.</p>
+
+<p>To enable sharing via deep links, you must define a class that extends the
+{@code android.service.} <br>
+{@code chooser.ChooserTargetService} class. Declare your
+{@code ChooserTargetService} in the manifest. Within that declaration, specify the
+{@code BIND_CHOOSER_TARGET_SERVICE} permission and an intent filter with the
+{@code SERVICE_INTERFACE} action.</p>
+<p>The following example shows how you might declare the {@code ChooserTargetService} in your
+manifest.</p>
+<br>
+<br>
+<br>
+<pre>
+&lt;service android:name=".ChooserTargetService"
+        android:label="&#64;string/service_name"
+        android:permission="android.permission.BIND_CHOOSER_TARGET_SERVICE"&gt;
+    &lt;intent-filter&gt;
+        &lt;action android:name="android.service.chooser.ChooserTargetService" /&gt;
+    &lt;/intent-filter&gt;
+&lt;/service&gt;
+</pre>
+
+<p>For each activity that you want to expose to the {@code ChooserTargetService}, add a
+{@code &lt;meta-data&gt;} element with the name
+{@code "android.service.chooser.chooser_target_service"} in your app manifest.
+</p>
+
+<pre>
+&lt;activity android:name=".MyShareActivity”
+        android:label="&#64;string/share_activity_label"&gt;
+    &lt;intent-filter>
+        &lt;action android:name="android.intent.action.SEND" /&gt;
+    &lt;/intent-filter>
+&lt;meta-data
+        android:name="android.service.chooser.chooser_target_service"
+        android:value=".ChooserTargetService" /&gt;
+&lt;/activity>
+</pre>
+
+<h2 id="voice-interactions">Voice Interactions</h2>
+<p>
+This release provides a new voice interaction API which, together with
+<a href="https://developers.google.com/voice-actions/" class="external-link">Voice Actions</a>,
+allows you to build conversational voice experiences into your apps. Call the
+{@code android.app.Activity.isVoiceInteraction()} method to determine if your activity was
+started in response to a voice action. If so, your app can use the
+{@code android.app.VoiceInteractor} class to request a voice confirmation from the user, select
+from a list of options, and more.</p>
+<p>To learn more about implementing voice actions, see the voice interaction API
+<a href="https://developers.google.com/voice-actions/interaction/"
+class="external-link">guide</a>.
+</p>
+
+<h2 id="bluetooth-stylus">Bluetooth Stylus Support</h2>
+<p>The M release provides improved support for user input using a Bluetooth stylus. If the user
+touches a stylus with a button on the screen of your app, the
+{@link android.view.MotionEvent#getToolType(int) getTooltype()} method now returns
+{@code TOOL_TYPE_STYLUS}. The {@link android.view.MotionEvent#getButtonState() getButtonState()}
+method returns {@link android.view.MotionEvent#BUTTON_SECONDARY} when the user
+presses the primary stylus button. If the stylus has a second button, the same method returns
+{@link android.view.MotionEvent#BUTTON_TERTIARY} when the user presses it. If the user presses
+both buttons simultaneously, the method returns both these values. In addition, the system reports
+the user button-press action to the new {@code View.onStylusButtonPressListener} and
+{@code GestureDetector.OnStylusButtonPressListener} callbacks in your activity, if you have
+registered these listeners in your app.</p>
+
+<h2 id="audio">New Audio Features</h2>
+
+<p>This release adds enhancements to audio processing on Android, including: </p>
+<ul>
+  <li>Support for the <a href="http://en.wikipedia.org/wiki/MIDI" class="external-link">MIDI</a>
+protocol, with the new {@code android.media.midi} APIs. Use these APIs to send and receive MIDI
+events.</li>
+  <li>New {@code android.media.AudioRecord.Builder} and {@code android.media.AudioTrack.Builder}
+classes to create digital audio capture and playback objects respectively, and configure audio
+source and sink properties to override the system defaults.</li>
+  <li>API hooks for associating audio and input devices. This is particularly useful if your app
+allows users to start a voice search from a game controller or remote control connected to Android
+TV. The system invokes the new {@code android.app.Activity.onSearchRequested()} callback when the
+user starts a search. To determine if the user's input device has a built-in microphone, retrieve
+the {@link android.view.InputDevice} object from that callback, then call the new
+{@code InputDevice.hasMic()} method.</li>
+  <li>New {@code android.media.AudioDevicesManager} class which lets you retrieve a list of all
+attached source and sink audio devices. You can also specify an
+{@code android.media.OnAudioDeviceConnectionListener} object if you want your app to be notified
+when an audio device is connected or disconnected.</li>
+</ul>
+
+<h2 id="afw">New Android for Work Features</h2>
+<p>This release includes the following new APIs for Android for Work:</p>
+<ul>
+  <li><strong>Enhanced controls for Corporate-Owned, Single-Use devices:</strong> The Device Owner
+can now control the following settings to improve management of
+Corporate-Owned, Single-Use (COSU) devices:
+  <ul>
+    <li>Disable or re-enable the keyguard with the
+{@code DevicePolicyManager.setKeyguardEnabledState()} method.</li>
+    <li>Disable or re-enable the status bar (including quick settings, notifications, and the
+navigation swipe-up gesture that launches Google Now) with the
+{@code DevicePolicyManager.setStatusBarEnabledState()} method.</li>
+    <li>Disable or re-enable safe boot with the {@link android.os.UserManager} constant
+{@code DISALLOW_SAFE_BOOT}.</li>
+    <li>Prevent the screen from turning off while plugged in with the
+  {@link android.provider.Settings.Global} constant {@code STAY_ON_WHILE_PLUGGED_IN}.</li>
+  </ul>
+  </li>
+  <li><strong>Silent install and uninstall of apps by Device Owner:</strong> A Device Owner can now
+silently install and uninstall applications using the {@link android.content.pm.PackageInstaller}
+APIs, independent of Google Play for Work. You can now provision devices through a Device Owner that
+fetches and installs apps without user interaction. This feature is useful for enabling one-touch
+provisioning of kiosks or other such devices without activating a Google account.</li>
+<li><strong>Silent enterprise certificate access: </strong> When an app calls
+{@link android.security.KeyChain#choosePrivateKeyAlias(android.app.Activity,android.security.KeyChainAliasCallback,java.lang.String[],java.security.Principal[],java.lang.String,int,java.lang.String) choosePrivateKeyAlias()},
+prior to the user being prompted to select a certificate, the Profile or Device Owner can now call
+the {@code DeviceAdminReceiver.onChoosePrivateKeyAlias()} method to provide the alias silently to
+the requesting application. This feature lets you grant managed apps access to certificates
+without user interaction.</li>
+<li><strong>Auto-acceptance of system updates.</strong> By setting a system update policy with
+{@code DevicePolicyManager.setSystemUpdatePolicy()}, a Device Owner can now auto-accept a system
+update, for instance in the case of a kiosk device, or postpone the update and prevent it being
+taken by the user for up to 30 days. Furthermore, an administrator can set a time window in which an
+update must be taken, for example during the hours when a kiosk device is not in use. When a
+system update is available, the system checks if the Work Policy Controller app has set a system
+update policy, and behaves accordingly.
+</li>
+<li>
+<strong>Delegated certificate installation.</strong> A Profile or Device Owner can now grant a
+third-party app the ability to call these {@link android.app.admin.DevicePolicyManager} certificate
+management APIs:
+<ul>
+  <li>{@link android.app.admin.DevicePolicyManager#getInstalledCaCerts(android.content.ComponentName)
+getInstalledCaCerts()}</li>
+  <li>{@link android.app.admin.DevicePolicyManager#hasCaCertInstalled(android.content.ComponentName,byte[])
+hasCaCertInstalled()}</li>
+  <li>{@link android.app.admin.DevicePolicyManager#installCaCert(android.content.ComponentName,byte[])
+installCaCert()}</li>
+  <li>{@link android.app.admin.DevicePolicyManager#uninstallCaCert(android.content.ComponentName,byte[])
+uninstallCaCert()}</li>
+  <li>{@link android.app.admin.DevicePolicyManager#uninstallAllUserCaCerts(android.content.ComponentName)
+uninstallAllUserCaCerts()}</li>
+  <li>{@link android.app.admin.DevicePolicyManager#installKeyPair(android.content.ComponentName,java.security.PrivateKey,java.security.cert.Certificate,java.lang.String)
+installKeyPair()}</li>
+</ul>
+</li>
+<li><strong>Enterprise factory reset protection.</strong> When provisioning a Device Owner, you can
+now configure parameters for bypassing Factory Reset Protection (FRP), by setting the
+{@code DeviceManagerPolicy.EXTRA_PROVISIONING_RESET_PROTECTION_PARAMETERS} bundle. An NFC Programmer
+app can provide these parameters after a device has been reset to bypass FRP and provision the device,
+without requiring the previously configured Google account. If you don't modify these parameters,
+FRP remains in-place and prevents the device from being activated without the previously activated
+Google credentials.</li>
+<li><strong>Data usage tracking.</strong> A Profile or Device Owner can now query for the data
+usage statistics visible in <em>Settings > Data</em> usage by using the new
+{@code android.app.usage.NetworkStatsManager} methods. Profile Owners are automatically granted
+permission to query data on the profile they manage, while Device Owners get access to usage data
+of the managed primary user.</li>
+</ul>
+
+<p class="note">
+  For a detailed view of all API changes in the M Developer Preview, see the <a href=
+  "{@docRoot}preview/reference.html">API Differences Report</a>.
+</p>
\ No newline at end of file
diff --git a/docs/html/preview/backup/index.jd b/docs/html/preview/backup/index.jd
new file mode 100644
index 0000000..9ef5db0
--- /dev/null
+++ b/docs/html/preview/backup/index.jd
@@ -0,0 +1,300 @@
+page.title=Automatic App Data Backup
+page.tags=backup
+
+@jd:body
+
+<p>
+  Users often invest significant time and effort collecting data and setting preferences within
+  apps. Preserving that data for users if they replace a broken device or upgrade to a new one is
+  an important part of ensuring a great user experience. The Android M Preview system helps ensure
+  a good experience for users in this circumstances by automatically backing up app data to the
+  cloud.
+</p>
+
+<p>
+  This behavior is enabled by default for all apps installed on devices running Android M or
+  higher. No additional app code is required. The system provides users with the ability opt out of
+  automatic data backups for individual apps. You can also choose to limit what data from your app
+  is backed up.
+</p>
+
+<p>
+  This document describes the new system behavior and how to specify what data is backed up for
+  your app.
+</p>
+
+<h2>Overview</h2>
+
+<p>
+  The automatic backup feature preserves the data your app creates on a user device by uploading to
+  the user’s Google Drive account and encrypting it. There is no charge to you or the user for data
+  storage and the saved data does not count towards the user's personal Drive quota. During the M
+  Preview period, users can store up to 25MB per Android app.
+</p>
+
+<p>
+  Automatic backups occur every 24 hours, when the device is idle, charging, and connected to a
+  Wi-Fi network. When these conditions are met, the Backup Manager service uploads all available
+  backup data to the cloud. When the user transitions to a new device, or uninstalls and reinstalls
+  the backed up application, a restore operation will take place, copying the backed up data into
+  the newly installed application’s data directory.
+</p>
+
+
+<h3>Automatically Excluded Data Files</h3>
+
+<p>
+  Not all app data should be backed up, such as temporary files and caches, so the automatic backup
+  service excludes certain data files by default:
+</p>
+
+<ul>
+  <li>Files in the directories referred to by the <code><a href=
+  "{@docRoot}reference/android/content/Context.html#getCacheDir()">getCacheDir()</a></code> and
+  <code><a href=
+  "{@docRoot}reference/android/content/ContextWrapper.html#getCodeCacheDir()">getCodeCacheDir()</a></code>
+  methods.
+  </li>
+
+  <li>Files located on external storage, unless they reside in the directory referred to by the
+  <code><a href=
+  "{@docRoot}reference/android/content/Context.html#getExternalFilesDir(java.lang.String)">getExternalFilesDir()</a></code>
+  method.
+  </li>
+
+  <li>Files located in the directory referred to by the <code><a href=
+  "{@docRoot}reference/android/content/Context.html#getNoBackupFilesDir()">getNoBackupFilesDir()</a></code>
+  method.
+  </li>
+</ul>
+
+<h2>Configuring Data Backup</h2>
+
+<p>
+  The data created by any app installed on an M device is backed up, except for the automatically
+  excluded files listed in the previous section. You can further limit and configure what data gets
+  backed up from your app using settings in your app manifest.
+</p>
+
+<h3>Including or Excluding Data</h3>
+
+<p>
+  Depending on what data your application needs and how you save it, you may need to set specific
+  rules for including or excluding certain files or directories. The automatic backup service
+  supports setting these backup rules through use of an XML configuration file and the app
+  manifest. In the app manifest, you can specify a backup scheme configuration file as shown in the
+  following example:
+</p>
+
+<pre>
+&lt;?xml version="1.0" encoding="utf-8"?&gt;
+&lt;manifest xmlns:android="http://schemas.android.com/apk/res/android"
+        xmlns:tools="http://schemas.android.com/tools"
+        package="com.my.appexample"&gt;
+    &lt;uses-sdk android:minSdkVersion="9"/&gt;
+    &lt;uses-sdk android:targetSdkVersion="android-MNC"/&gt;
+    &lt;application ...
+<strong>        android:fullBackupContent="&#64;xml/mybackupscheme"&gt;</strong>
+    &lt;/application&gt;
+    ...
+&lt;/manifest&gt;
+</pre>
+
+<p>
+  In this example code, the android:fullBackupContent attribute specifies an XML file, located in
+  the <code>res/xml/</code> directory of your app development project, named
+  <code>mybackupscheme.xml</code>. This configuration file can include rules for what files are
+  backed up. The following example code shows a configuration file that excludes a specific file
+  from backups:
+</p>
+
+<pre>
+&lt;?xml version="1.0" encoding="utf-8"?&gt;
+	&lt;full-backup-content&gt;
+    &lt;exclude domain="database" path="device_info.db"/&gt;
+&lt;/full-backup-content&gt;
+</pre>
+
+<p>
+  This backup configuration only excludes a specific database file from being backed up. All other
+  files are backed up.
+</p>
+
+<h4>Backup Configuration Syntax</h4>
+
+<p>
+  The backup service configuration allows you to specify what files to include or exclude from
+  backup. The syntax for the data backup configuration xml file is as follows:
+</p>
+
+<pre>
+&lt;full-backup-content&gt;
+    &lt;include domain=["file" | "database" | "sharedpref" | "external" | "root"] path="string" /&gt;
+    &lt;exclude domain=["file" | "database" | "sharedpref" | "external" | "root"] path="string" /&gt;
+&lt;/full-backup-content&gt;
+</pre>
+
+<p>
+  The following elements and attributes allow you to specify the files to include and exclude from
+  backup:
+</p>
+
+<ul>
+  <li>
+	<code>&lt;include&gt;</code>. Use this element if you want to specify a set of resources to
+	back up, instead of having the system back up all data in your app by default. When you specify
+	an <code>&lt;include&gt;</code> tag, the system backs up only the resources specified with this
+	element.
+  </li>
+
+  <li>
+	<code>&lt;exclude&gt;</code>. Use this element to specify a set of resources to exclude from
+	backup. The system backs up all data in your app, except for resources specified with this
+	element.
+  </li>
+
+  <li>
+	<code>domain.</code> The type of resource you want to include or exclude from backup. The valid
+	values you can specify for this attribute include:
+  </li>
+
+  <li style="list-style: none">
+	<ul>
+	  <li>
+		<code>root</code>. Specifies that the resource is in the app’s root directory.
+	  </li>
+
+	  <li>
+		<code>file</code>. Corresponds to a resource in the directory returned by the
+		<code><a href="{@docRoot}reference/android/content/Context.html#getFilesDir()">getFilesDir()</a></code>
+		method.
+	  </li>
+
+	  <li>
+		<code>database</code>. Corresponds to a database returned by the <code><a href=
+		"{@docRoot}reference/android/content/Context.html#getDatabasePath(java.lang.String)">getDatabasePath()</a></code>
+		method or by using the <code><a href=
+		"{@docRoot}reference/android/database/sqlite/SQLiteOpenHelper.html">SQLiteOpenHelper</a></code>
+		class.
+	  </li>
+
+	  <li>
+		<code>sharedpref</code>. Corresponds to a <code><a href=
+		"{@docRoot}reference/android/content/SharedPreferences.html">SharedPreferences</a></code>
+		object returned by the <code><a href=
+		"{@docRoot}reference/android/content/Context.html#getSharedPreferences(java.lang.String,%20int)">
+		getSharedPreferences()</a></code> method.
+	  </li>
+
+	  <li>
+		<code>external</code>. Specifies that the resource is in external storage, and corresponds
+		to a file in the directory returned by the <code><a href=
+		"{@docRoot}reference/android/content/Context.html#getExternalFilesDir(java.lang.String)">getExternalFilesDir()</a></code>
+		method.
+	  </li>
+
+	  <li>
+		<code>path</code>. The file path to a resource that you want to include or exclude from
+		backup.
+	  </li>
+	</ul>
+  </li>
+</ul>
+
+
+<h3>Prohibiting Data Backups</h3>
+
+<p>
+  You can choose to prevent automatic backups of any of your app data by setting the
+  <code>android:allowBackup</code> attribute to <code>false</code> in the application element of
+  your manifest. This setting is illustrated in the following example code:
+</p>
+
+<pre>
+&lt;?xml version="1.0" encoding="utf-8"?&gt;
+&lt;manifest xmlns:android="http://schemas.android.com/apk/res/android"
+        xmlns:tools="http://schemas.android.com/tools"
+        package="com.my.appexample"&gt;
+    &lt;uses-sdk android:minSdkVersion="9"/&gt;
+    &lt;uses-sdk android:targetSdkVersion="android-MNC"/&gt;
+    &lt;application ...
+<strong>        android:allowBackup="false"&gt;</strong>
+    &lt;/application&gt;
+    ...
+&lt;/manifest&gt;
+</pre>
+
+
+<h2>Testing Backup Configuration</h2>
+
+<p>
+  Once you have created a backup configuration, you should test it to make sure your app saves data
+  and can be restored properly.
+</p>
+
+
+<h4>Enabling Backup Logging</h4>
+
+<p>
+  To help determine how the backup feature is parsing your XML file, enable logging before
+  performing a test backup:
+</p>
+
+<pre>$ adb shell setprop log.tag.BackupXmlParserLogging VERBOSE</pre>
+
+<h4>Testing Backup</h4>
+
+<p>
+  To manually enable a backup, call the following command, specifying the package name for your app
+  as the <code>&lt;PACKAGE&gt;</code> parameter:
+</p>
+
+<pre>$ adb shell bmgr fullbackup &lt;PACKAGE&gt;</pre>
+
+<h4>Testing Restore</h4>
+<p>
+  To manually initiate a restore after your app data is backed-up, call the following command,
+  specifying the package name for your app as the <code>&lt;PACKAGE&gt;</code> parameter:
+</p>
+
+<pre>$ adb shell bmgr restore &lt;PACKAGE&gt;</pre>
+
+<p class="warning">
+  <b>Warning:</b> This action stops your app and wipes its data before performing the restore
+  operation.
+</p>
+
+<p>
+  You initiate the restore process for your app by uninstalling and reinstalling your app. The app
+  data is automatically restored from the cloud once the app installation is complete.
+</p>
+
+
+<h4>Troubleshooting Backups</h4>
+
+<p>
+  If you run into issues, clear the backup data and associated metadata by calling this command.
+</p>
+
+<pre>$ adb shell bmgr wipe &lt;TRANSPORT&gt; &lt;PACKAGE&gt;</pre>
+
+<p>
+  The <code>&lt;TRANSPORT&gt;</code> value must be prefixed by <code>com.google.android.gms</code>.
+  To get the list of transports, call the following command:
+</p>
+
+<pre>$ adb shell bmgr list transports</pre>
+
+<h2>Known Issues</h2>
+
+<p>The following are known issues with the automatic backup service:</p>
+
+<ul>
+  <li>For apps that use Google Cloud Messaging for push notifications, there is a known issue where
+  backing up the registration id returned by Google Cloud Messaging registration can break push
+  notifications for the restored application. It is important to query the API for a new
+  registration id after being installed on a new device - which will not be the case if the old
+  registration id was backed up. To avoid this, exclude the registration id from the set of backed
+  up files.
+  </li>
+</ul>
\ No newline at end of file
diff --git a/docs/html/preview/data-binding/guide.jd b/docs/html/preview/data-binding/guide.jd
new file mode 100644
index 0000000..49b690f
--- /dev/null
+++ b/docs/html/preview/data-binding/guide.jd
@@ -0,0 +1,908 @@
+page.title=Data Binding Guide
+
+@jd:body
+<p>Data Binding allows you write declarative layouts and minimize the glue code
+that is necessary to bind your application logic and layouts.</p>
+
+
+<h2 id=build_environment>Build Environment</h2>
+
+
+<p><strong>Setting Up Work Environment:</strong></p>
+
+<p>Data Binding EAP only supports gradle.</p>
+
+<p>To set up your application, unzip the provided bundle to a location. It has 3
+sections</p>
+
+<ul>
+  <li> <em>maven-repo:</em> which keeps the data-binding libraries
+  <li> <em>samples:</em> Sample applications
+  <li> <em>databinding.properties:</em> Properties file that can be used to integrate with your app
+</ul>
+
+<p>Add the following section to the project’s build.gradle file (not the module&apos;s
+build.gradle) and replace <code><BUNDLE_FOLDER> </code>with the absolute path of the bundle that you’ve unzipped in the previous step.</p>
+
+<pre class=prettyprint>
+buildscript {
+   <strong>def </strong>eapFolder = &apos;&lt;BUNDLE_FOLDER>&apos;
+<strong>   def </strong>Properties props = <strong>new </strong>Properties()
+   props.load(<strong>new </strong>FileInputStream(<strong>"</strong>${eapFolder}<strong>/databinding.properties"</strong>))
+   props.mavenRepoDir = <strong>"</strong>${eapFolder}<strong>/</strong>${props.mavenRepoName}<strong>"
+   </strong>ext.config = props
+   repositories {
+       jcenter()
+       maven {
+           url config.mavenRepoDir
+       }
+   }
+   dependencies {
+       classpath <strong>"com.android.tools.build:gradle:1.1.3"
+       </strong>classpath <strong>"com.android.databinding:dataBinder:</strong>${config.snapshotVersion}<strong>"
+<em></strong>   </em>}
+}
+allprojects {
+   repositories {
+       jcenter()
+       maven {
+           url config.mavenRepoDir
+       }
+   }
+}
+</pre>
+
+<p>Next, add the following lines to the <em>build.gradle</em>
+file of each module that will use data-binding. The application module must
+have this, even if only its libraries use data binding.</p>
+
+<pre class=prettyprint>
+apply plugin: <strong>&apos;com.android.databinding&apos;
+</strong>dependencies {
+    compile <strong>"com.android.databinding:library:</strong>${config.snapshotVersion}<strong>"
+</strong>    compile <strong>"com.android.databinding:baseLibrary:</strong>${config.snapshotVersion}<strong>"
+</strong>    compile <strong>"com.android.databinding:adapters:</strong>${config.snapshotVersion}<strong>"
+</strong>    provided <strong>"com.android.databinding:annotationprocessor:</strong>${config.snapshotVersion}<strong>"
+</strong>}
+</pre>
+
+
+<h2 id="data_binding_layout_files">Data Binding Layout Files</h2>
+
+
+<h3 id="writing_expressions">Writing your first data binding expressions:</h3>
+
+<p>Data-binding layout files are slightly different and start with a root tag of
+<strong>layout</strong> followed by a <strong>data</strong> element and a
+<strong>view</strong> root element. This view element is what your root would
+be in a non-binding layout file.A sample file looks like this:</p>
+
+<pre class=prettyprint>
+<em>&lt;?<strong></em>xml version="1.0" encoding="utf-8"<em></strong>?>
+</em>&lt;<strong>layout xmlns:android="http://schemas.android.com/apk/res/android"</strong>>
+   &lt;<strong>data</strong>>
+       &lt;<strong>variable name="user" type="com.example.User"</strong>/>
+   &lt;/<strong>data</strong>>
+   &lt;<strong>LinearLayout
+       android:orientation="vertical"
+       android:layout_width="match_parent"
+       android:layout_height="match_parent"</strong>>
+       &lt;<strong>TextView android:layout_width="wrap_content"
+           android:layout_height="wrap_content"
+           android:text="&commat;{user.firstName}"</strong>/>
+       &lt;<strong>TextView android:layout_width="wrap_content"
+           android:layout_height="wrap_content"
+           android:text="&commat;{user.lastName}"</strong>/>
+   &lt;/<strong>LinearLayout</strong>>
+&lt;/<strong>layout</strong>>
+</pre>
+
+<p>The user <strong>variable</strong> within <strong>data</strong> describes a property that may be used within this layout.</p>
+
+<pre class=prettyprint>
+&lt;<strong>variable name="user" type="com.example.User"</strong>/>
+</pre>
+
+<p>Expressions within the layout are written in the attribute properties using the
+“<code>&commat;{}</code>” syntax. Here, the TextView’s text is set to the firstName property of user:</p>
+<pre class=prettyprint>
+&lt;<strong>TextView android:layout_width="wrap_content"
+          android:layout_height="wrap_content"
+          android:text="&commat;{user.firstName}"</strong>/>
+</pre>
+
+
+<h3 id="data_object">Data Object</h3>
+
+<p>Let’s assume for now that you have a plain-old Java object (POJO) for User:</p>
+<pre class=prettyprint>
+<strong>public class </strong>User {
+   <strong>public final </strong>String <strong>firstName</strong>;
+   <strong>public final </strong>String <strong>lastName</strong>;
+   <strong>public </strong>User(String firstName, String lastName) {
+       <strong>this</strong>.<strong>firstName </strong>= firstName;
+       <strong>this</strong>.<strong>lastName </strong>= lastName;
+   }
+}
+</pre>
+
+<p>This type of object has data that never changes. It is common in applications
+to have data that is read once and never changes thereafter. It is also
+possible to use a JavaBeans objects:</p>
+<pre class=prettyprint>
+<strong>public class </strong>User {
+   <strong>private final </strong>String <strong>firstName</strong>;
+   <strong>private final </strong>String <strong>lastName</strong>;
+   <strong>public </strong>User(String firstName, String lastName) {
+       <strong>this</strong>.<strong>firstName </strong>= firstName;
+       <strong>this</strong>.<strong>lastName </strong>= lastName;
+   }
+   <strong>public </strong>String getFirstName() {
+       <strong>return this</strong>.<strong>firstName</strong>;
+   }
+   <strong>public </strong>String getLastName() {
+       <strong>return this</strong>.<strong>lastName</strong>;
+   }
+}
+</pre>
+
+<p>From the perspective of data binding, these two classes are equivalent. The
+expression <strong><code>&commat;{user.lastName}</code></strong> used for the TextView’s <strong><code>android:text</code></strong> attribute will access the <strong><code>firstName</code></strong> field in the former class and the <code>getFirstName()</code> method in the latter class.
+</p><h3 id=binding_data>Binding Data</h3>
+
+<p>By default, a Binding class will be generated based on the name of the layout
+file, converting it to Pascal case and suffixing “Binding” to it. The above
+layout file was <code>activity_main.xml</code> so the generate class was <code>ActivityMainBinding</code>. This class holds all the bindings from the layout properties (e.g. the <code>user</code> variable) to the layout’s Views and knows how to assign values for the binding
+expressions.The easiest means for creating the bindings is to do it while inflating:
+</p>
+
+<pre class=prettyprint>
+&commat;Override
+<strong>protected void </strong>onCreate(Bundle savedInstanceState) {
+   <strong>super</strong>.onCreate(savedInstanceState);
+   ActivityMainBinding binding = DataBindingUtil.<em>setContentView</em>(<strong>this</strong>, R.layout.<em><strong>main_activity</strong></em>);
+   User user = <strong>new </strong>User(<strong>"Test"</strong>, <strong>"User"</strong>);
+   binding.setUser(user);
+}
+</pre>
+
+<p>You’re done! Run the application and you’ll see Test User in the UI.Alternatively, you can get the view via:
+</p><pre class=prettyprint>
+MainActivityBinding binding = MainActivityBinding.<em>inflate</em>(getLayoutInflater());
+</pre>
+
+<p>If you are using data binding items inside a ListView or RecyclerView adapter,
+you may prefer to use:
+</p><pre class=prettyprint>
+ListItemBinding binding = ListItemBinding.inflate(layoutInflater, viewGroup,
+false);
+//or
+ListItemBinding binding = DataBindingUtil.<em>inflate</em>(layoutInflater, R.layout.<em><strong>list_item</strong></em>, viewGroup, <strong>false</strong>);
+</pre>
+
+
+<h2 id=layout_details>Layout Details</h2>
+
+
+<h3 id=imports>Imports</h3>
+
+<p>Zero or more <strong><code>import</code></strong> elements may be used inside the <strong><code>data</code></strong> element. These allow easy reference to classes inside your layout file, just
+like in Java.
+</p><pre class=prettyprint>
+&lt;<strong>data</strong>>
+    &lt;<strong>import type="android.view.View"</strong>/>
+&lt;/<strong>data</strong>>
+</pre>
+
+<p>Now, View may be used within your binding expression:
+</p><pre class=prettyprint>
+&lt;<strong>TextView
+   android:text="&commat;{user.lastName}"
+   android:layout_width="wrap_content"
+   android:layout_height="wrap_content"
+   android:visibility="&commat;{user.isAdult ? View.VISIBLE : View.GONE}"</strong>/>
+</pre>
+
+<p>When there are class name conflicts, one of the classes may be renamed to an
+“alias:”</p>
+<pre class=prettyprint>
+&lt;<strong>import type="android.view.View"</strong>/>
+&lt;<strong>import type="com.example.real.estate.View"
+        alias="Vista"</strong>/>
+</pre>
+
+<p>Now, <strong><code>Vista</code></strong> may be used to reference the <code>com.example.real.estate.View</code> and <strong><code>View</code></strong> may be used to reference <code>android.view.View </code>within the layout file.Imported types may be used as type references in variables and expressions:</p>
+<pre class=prettyprint>
+&lt;<strong>data</strong>>
+    &lt;<strong>import type="com.example.User"</strong>/>
+    &lt;<strong>import type="java.util.List"</strong>/>
+    &lt;<strong>variable name="user" type="User"</strong>/>
+    &lt;<strong>variable name="userList" type="List&lt;User&gt;"</strong>/>
+&lt;/<strong>data</strong>>
+…
+&lt;<strong>TextView
+   android:text="&commat;{((User)(user.connection)).lastName}"
+   android:layout_width="wrap_content"
+   android:layout_height="wrap_content"</strong>/>
+</pre>
+
+<p>Imported types may also be used when referencing static fields and methods in
+expressions:</p>
+<pre class=prettyprint>
+&lt;<strong>data</strong>>
+    &lt;<strong>import type="com.example.MyStringUtils"</strong>/>
+    &lt;<strong>variable name="user" type="com.example.User"</strong>/>
+&lt;/<strong>data</strong>>
+…
+&lt;<strong>TextView
+   android:text="&commat;{MyStringUtils.capitalize(user.lastName)}"
+   android:layout_width="wrap_content"
+   android:layout_height="wrap_content"</strong>/>
+</pre>
+
+<p>Just as in Java, <code>java.lang.*</code> is imported automatically.</p>
+<h3 id=variables>Variables</h3>
+
+<p>Any number of <strong><code>variable</code></strong> elements may be used inside the <strong><code>data</code></strong> element. Each <strong><code>variable</code></strong> element describes a property that may be set on the layout to be used in
+binding expressions within the layout file.</p>
+<pre class=prettyprint>
+&lt;<strong>data</strong>>
+    &lt;<strong>import type="android.graphics.drawable.Drawable"</strong>/>
+    &lt;<strong>variable name="user"  type="com.example.User"</strong>/>
+    &lt;<strong>variable name="image" type="Drawable"</strong>/>
+    &lt;<strong>variable name="note"  type="String"</strong>/>
+&lt;/<strong>data</strong>>
+</pre>
+
+<p>The variable types are inspected at compile time, so if a variable implements <a href="#observable_objects">Observable</a>, <a href="#observable_collections">observable collection</a>, that should be reflected in the type. If the variable is a base class or
+  interface that does not implement the Observable* interface, the variables will <strong>not be</strong> observed!</p>
+
+<p>When there are different layout files for various configurations (e.g.
+landscape or portrait), the variables will be combined. There must not be
+conflicting variable definitions between these layout files.</p>
+
+<p>The generated binding class will have a setter and getter for each of the
+described variables. The variables will take the default Java values until the
+setter is called &mdash; <code>null</code> for reference types, <code>0</code> for <code>int</code>, <code>false</code> for <code>boolean</code>, etc.</p>
+
+<h3 id=custom_binding_class_names>Custom Binding Class Names</h3>
+
+<p>By default, a Binding class is generated based on the name of the layout file,
+starting it with upper-case, removing underscores ( _ ) and capitalizing the
+following letter and then suffixing “Binding”. This class will be placed in a
+databinding package under the module package. For example, the layout file <code>contact_item.xml</code> will generate <code>ContactItemBinding</code>. If the module package is <code>com.example.my.app</code>, then it will be placed in <code>com.example.my.app.databinding</code>.</p>
+
+<p>Binding classes may be renamed or placed in different packages by adjusting the <strong><code>class</code></strong> attribute of the <strong><code>data</code></strong> element. For example:</p>
+<pre class=prettyprint>
+&lt;<strong>data class="ContactItem"</strong>>
+    ...
+&lt;/<strong>data</strong>>
+</pre>
+
+<p>This generates the binding class as <code>ContactItem</code> in the databinding package in the module package. If the class should be
+generated in a different package within the module package, it may be prefixed
+with “.”:</p>
+<pre class=prettyprint>
+&lt;<strong>data class=".ContactItem"</strong>>
+    ...
+&lt;/<strong>data</strong>>
+</pre>
+
+In this case, <code>ContactItem</code> is generated in the module package directly.Any package may be used if the full package is provided:
+<pre class=prettyprint>
+&lt;<strong>data class="com.example.ContactItem"</strong>>
+    ...
+&lt;/<strong>data</strong>>
+</pre>
+
+
+<h3 id=includes>Includes</h3>
+
+<p>Variables may be passed into an included layout&apos;s binding from the containing
+layout by using the application namespace and the variable name in an
+attribute:</p>
+<pre class=prettyprint>
+<em>&lt;?<strong></em>xml version="1.0" encoding="utf-8"<em></strong>?>
+</em>&lt;<strong>layout xmlns:android="http://schemas.android.com/apk/res/android"
+</strong>       <strong> xmlns:bind="http://schemas.android.com/apk/res-auto"</strong>>
+   &lt;<strong>data</strong>>
+       &lt;<strong>variable name="user" type="com.example.User"</strong>/>
+   &lt;/<strong>data</strong>>
+   &lt;<strong>LinearLayout
+       android:orientation="vertical"
+       android:layout_width="match_parent"
+       android:layout_height="match_parent"</strong>>
+       &lt;<strong>include layout="&commat;layout/name"
+           bind:user="&commat;{user}"</strong>/>
+       &lt;<strong>include layout="&commat;layout/contact"
+           bind:user="&commat;{user}"</strong>/>
+   &lt;/<strong>LinearLayout</strong>>
+&lt;/<strong>layout</strong>>
+</pre>
+
+<p>Here, there must be a <code>user</code> variable in both the <code>name.xml </code>and <code>contact.xml </code>layout files.</p>
+<h3 id=expression_language>Expression Language</h3>
+
+
+<h4 id=common_features>Common Features</h4>
+
+<p>The expression language looks a lot like a Java expression. These are the same:</p>
+<ul>
+  <li> Mathematical <strong><code>+ - / * %</code></strong>
+  <li> String concatenation <strong><code>+</code></strong>
+  <li> <code>L</code>ogical <strong><code>&& ||</code></strong>
+  <li> Binary <strong><code>&</code> <code>|</code> <code>^</code></strong>
+  <li> Unary <strong><code>+ - ! ~</code></strong>
+  <li> Shift <strong><code>>> >>> <<</code></strong>
+  <li> Comparison <strong><code>== > < >= <=</code></strong>
+  <li> <strong><code>instanceof</code></strong>
+  <li> Grouping <strong><code>()</code></strong>
+  <li> Literals - character, String, numeric, <strong><code>null</code></strong>
+  <li> Cast
+  <li> Method calls
+  <li> Field access
+  <li> Array access <strong><code>[]</code></strong>
+  <li> Ternary operator <strong><code>?:</code></strong>
+</ul>
+<p>Examples:</p>
+<pre class=prettyprint>
+<strong>android:text="&commat;{String.valueOf(index + 1)}"
+android:visibility="&commat;{age &lt; 13 ? View.GONE : View.VISIBLE}"
+android:transitionName=&apos;&commat;{"image_" + id}&apos;</strong>
+</pre>
+
+
+<h4 id=missing_operations>Missing Operations</h4>
+
+<p>A few operations are missing from the expression syntax that you can use in
+Java.</p>
+<ul>
+  <li> <strong><code>this</code></strong>
+  <li> <strong><code>super</code></strong>
+  <li> <strong><code>new</code></strong>
+  <li> Explicit generic invocation
+</ul>
+
+<h4 id=null_coalescing_operator>Null Coalescing Operator</h4>
+
+<p>The null coalescing operator (<strong><code>??</code></strong>) chooses the left operand if it is not null or the right if it is null.</p>
+<pre class=prettyprint>
+<strong>android:text="&commat;{user.displayName ?? user.lastName}"</strong>
+</pre>
+
+<p>This is functionally equivalent to:</p>
+<pre class=prettyprint>
+<strong>android:text="&commat;{user.displayName != null ? user.displayName : user.lastName}"</strong>
+</pre>
+
+
+<h4 id=property_reference>Property Reference</h4>
+
+<p>The first was already discussed in the <a href="#writing_your_first_data_binding_expressions">Writing your first data binding expressions</a> above: short form JavaBean references. When an expression references a
+property on a class, it uses the same format for fields, getters, and
+ObservableFields.</p>
+<pre class=prettyprint>
+<strong>android:text="&commat;{user.lastName}"</strong>
+</pre>
+
+
+<h4 id=collections>Collections</h4>
+
+<p>Common collections: arrays, lists, sparse lists, and maps, may be accessed
+using the <code>[]</code> operator for convenience.</p>
+<pre class=prettyprint>
+&lt;<strong>data</strong>>
+    &lt;<strong>import type="android.util.SparseArray"</strong>/>
+    &lt;<strong>import type="java.util.Map"</strong>/>
+    &lt;<strong>import type="java.util.List"</strong>/>
+    &lt;<strong>variable name="list" type="List&lt;String&gt;"</strong>/>
+    &lt;<strong>variable name="sparse" type="SparseArray&lt;String&gt;"</strong>/>
+    &lt;<strong>variable name="map" type="Map&lt;String, String&gt;"</strong>/>
+    &lt;<strong>variable name="index" type="int"</strong>/>
+    &lt;<strong>variable name="key" type="String"</strong>/>
+&lt;/<strong>data</strong>>
+…
+<strong>android:text="&commat;{list[index]}"
+</strong>…
+<strong>android:text="&commat;{sparse[index]}"
+</strong>…
+<strong>android:text="&commat;{map[key]}"
+</strong>
+</pre>
+
+
+<h4 id=string_literals>String Literals</h4>
+
+<p>When using single quotes around the attribute value, it is easy to use double
+quotes in the expression:</p>
+<pre class=prettyprint>
+<strong>android:text=&apos;&commat;{map["firstName"]}&apos;</strong>
+</pre>
+
+<p>It is also possible to use double quotes to surround the attribute value. When
+doing so, String literals should either use the &quot; or back quote (`).</p>
+<pre class=prettyprint>
+<strong>android:text="&commat;{map[`firstName`}"
+android:text="&commat;{map[&quot;firstName&quot;]}"</strong>
+</pre>
+
+
+<h4 id=resources>Resources</h4>
+
+<p>It is possible to access resources as part of expressions using the normal
+syntax:</p>
+<pre class=prettyprint>
+<strong>android:padding="&commat;{large? &commat;dimen/largePadding : &commat;dimen/smallPadding}"</strong>
+</pre>
+
+<p>Format strings and plurals may be evaluated by providing parameters:</p>
+<pre class=prettyprint>
+<strong>android:text="&commat;{&commat;string/nameFormat(firstName, lastName)}"
+android:text="&commat;{&commat;plurals/banana(bananaCount)}"</strong>
+</pre>
+
+<p>Some resources require explicit type evaluation.</p>
+
+<table>
+ <tr>
+    <th>Type</th>
+    <th>Normal Reference</th>
+    <th>Expression Reference</th>
+ </tr>
+ <tr>
+    <td>
+<pre class=prettyprint>
+String[]</td>
+    <td>
+&commat;array</td>
+    <td>
+&commat;stringArray</td>
+ </tr>
+ <tr>
+    <td>
+int[]</td>
+    <td>
+&commat;array</td>
+    <td>
+&commat;intArray</td>
+ </tr>
+ <tr>
+    <td>
+TypedArray</td>
+    <td>
+&commat;array</td>
+    <td>
+&commat;typedArray</td>
+ </tr>
+ <tr>
+    <td>
+Animator</td>
+    <td>
+&commat;animator</td>
+    <td>
+&commat;animator</td>
+ </tr>
+ <tr>
+    <td>
+StateListAnimator</td>
+    <td>
+&commat;animator</td>
+    <td>
+&commat;stateListAnimator</td>
+ </tr>
+ <tr>
+    <td>
+</pre>
+
+color <code>int</code></td>
+    <td>
+<pre class=prettyprint>
+&commat;color</td>
+    <td>
+&commat;color</td>
+ </tr>
+ <tr>
+    <td>
+ColorStateList</td>
+    <td>
+&commat;color</td>
+    <td>
+&commat;colorStateList</td>
+ </tr>
+</table>
+
+</pre>
+
+
+<h2 id="data_objects">Data Objects</h2>
+
+
+<p>Any plain old Java object (POJO) may be used for data binding, but modifying a
+POJO will not cause the UI to update. The real power of data binding can be
+used by giving your data objects the ability to notify when data changes. There
+are three different data change notification mechanisms, <code>Observable </code>objects, <code>ObservableField</code>s, and <code>observable collections</code>.</p>
+
+<p>When one of these observable data object is bound to the UI and a property of
+the data object changes, the UI will be updated automatically.</p>
+
+<h3 id=observable_objects>Observable Objects</h3>
+
+
+<p>A class implementing <code>android.databinding.Observable</code> interface will allow the binding to attach a single listener to a bound object
+to listen for changes of all properties on that object.</p>
+
+<p>The <code>Observable</code> interface has a mechanism to add and remove listeners, but notifying is up to
+the developer. To make development easier, a base class, <code>BaseObservable,</code> was created to implement the listener registration mechanism. The data class
+implementer is still responsible for notifying when the properties change. This
+is done by assigning an <code>Bindable </code>annotation to the getter and notifying in the setter.</p>
+
+<pre class=prettyprint>
+<strong>private static class </strong>User <strong>extends </strong>BaseObservable {
+   <strong>private </strong>String <strong>firstName</strong>;
+   <strong>private </strong>String <strong>lastName</strong>;
+   &commat;Bindable
+   <strong>public </strong>String getFirstName() {
+       <strong>return this</strong>.<strong>firstName</strong>;
+   }
+   &commat;Bindable
+   <strong>public </strong>String getFirstName() {
+       <strong>return this</strong>.<strong>lastName</strong>;
+   }
+   <strong>public void </strong>setFirstName(String firstName) {
+       <strong>this</strong>.<strong>firstName </strong>= firstName;
+       notifyPropertyChanged(BR.firstName);
+   }
+   <strong>public void </strong>setLastName(String lastName) {
+       <strong>this</strong>.<strong>lastName </strong>= lastName;
+       notifyPropertyChanged(BR.lastName);
+   }
+}
+</pre>
+
+<p>The <code>Bindable </code>annotation generates an entry in the BR class file during compilation. The BR
+class file will be generated in the module package.If the base class for data classes cannot be changed, the <code>Observable</code> interface may be implemented using the convenient <code>PropertyChangeRegistry</code> to store and notify listeners efficiently.</p>
+
+<h3 id=observablefields>ObservableFields</h3>
+
+<p>A little work is involved in creating Observable classes, so developers who
+want to save time or have few properties may use ObservableFields.
+ObservableFields are self-contained observable objects that have a single
+field. There are versions for all primitive types and one for reference types.
+To use, create a public final field in the data class:</p>
+<pre class=prettyprint>
+<strong>private static class </strong>User <strong>extends </strong>BaseObservable {
+   <strong>public final </strong>ObservableField&lt;String> <strong>firstName </strong>=
+       <strong>new </strong>ObservableField&lt;>();
+   <strong>public final </strong>ObservableField&lt;String> <strong>lastName </strong>=
+       <strong>new </strong>ObservableField&lt;>();
+   <strong>public final </strong>ObservableInt <strong>age </strong>= <strong>new </strong>ObservableInt();
+}
+</pre>
+
+<p>That&apos;s it! To access the value, use the set and get accessor methods:</p>
+<pre class=prettyprint>
+user.<strong>firstName</strong>.set(<strong>"Google"</strong>);
+<strong>int </strong>age = user.<strong>age</strong>.get();
+</pre>
+
+
+<h3 id=observable_collections>Observable Collections</h3>
+
+<p>Some applications use more dynamic structures to hold data. Observable
+  collections allow keyed access to these data objects.ObservableArrayMap is useful when the key is a reference type, such as String.</p>
+
+<pre class=prettyprint>
+ObservableArrayMap&lt;String, Object> user = <strong>new </strong>ObservableArrayMap&lt;>();
+user.put(<strong>"firstName"</strong>, <strong>"Google"</strong>);
+user.put(<strong>"lastName"</strong>, <strong>"Inc."</strong>);
+user.put(<strong>"age"</strong>, 17);
+</pre>
+
+In the layout, the map may be accessed through the String keys:
+<pre class=prettyprint>
+&lt;<strong>data</strong>>
+    &lt;<strong>import type="android.databinding.ObservableMap"</strong>/>
+    &lt;<strong>variable name="user" type="ObservableMap&lt;String, Object>"</strong>/>
+&lt;/<strong>data</strong>>
+…
+&lt;<strong>TextView
+   android:text=&apos;&commat;{user["lastName"]}&apos;
+   android:layout_width="wrap_content"
+   android:layout_height="wrap_content"</strong>/>
+&lt;<strong>TextView
+   android:text=&apos;&commat;{String.valueOf(1 + (Integer)user["age"])}&apos;
+   android:layout_width="wrap_content"
+   android:layout_height="wrap_content"</strong>/>
+</pre>
+
+<p>ObservableArrayList is useful when the key is an integer:</p>
+<pre class=prettyprint>
+ObservableArrayList&lt;Object> user = <strong>new </strong>ObservableArrayList&lt;>();
+user.add(<strong>"Google"</strong>);
+user.add(<strong>"Inc."</strong>);
+user.add(17);
+</pre>
+
+<p>In the layout, the list may be accessed through the indices:</p>
+<pre class=prettyprint>
+&lt;<strong>data</strong>>
+    &lt;<strong>import type="android.databinding.ObservableList"</strong>/>
+    &lt;<strong>import type="com.example.my.app.Fields"</strong>/>
+    &lt;<strong>variable name="user" type="ObservableList&lt;Object>"</strong>/>
+&lt;/<strong>data</strong>>
+…
+&lt;<strong>TextView
+   android:text=&apos;&commat;{user[Fields.LAST_NAME]}&apos;
+   android:layout_width="wrap_content"
+   android:layout_height="wrap_content"</strong>/>
+&lt;<strong>TextView
+   android:text=&apos;&commat;{String.valueOf(1 + (Integer)user[Fields.AGE])}&apos;
+   android:layout_width="wrap_content"
+   android:layout_height="wrap_content"</strong>/>
+</pre>
+
+
+<h2 id=generated_binding>Generated Binding</h2>
+
+<p>The generated binding class links the layout variables with the Views within
+the layout. As discussed earlier, the name and package of the Binding may be <a href="#custom_binding_class_names">customized</a>. The Generated binding classes all extend <code>android.databinding.ViewDataBinding</code>.</p>
+<h3 id=creating>Creating</h3>
+
+<p>The binding should be created soon after inflation to ensure that the View
+hierarchy is not disturbed prior to binding to the Views with expressions
+within the layout. There are a few ways to bind to a layout. The most common is
+to use the static methods on the Binding class.The inflate method inflates the View hierarchy and binds to it all it one step.
+There are versions that attach the View to its parent and that inflate without
+attaching.</p>
+<pre class=prettyprint>
+MyLayoutBinding binding = MyLayoutBinding.<em>inflate</em>(<strong>this</strong>);
+MyLayoutBinding binding = MyLayoutBinding.<em>inflate</em>(viewGroup);
+</pre>
+
+<p>If the layout was inflated using a different mechanism, it may be bound
+separately:</p>
+<pre class=prettyprint>
+MyLayoutBinding binding = MyLayoutBinding.<em>bind</em>(viewRoot);
+</pre>
+
+<p>Sometimes the binding cannot be known in advance. In such cases, the binding
+can be created using the DataBindingUtil class:</p>
+<pre class=prettyprint>
+ViewDataBinding binding = DataBindingUtil.<em>inflate</em>(context, layoutId,
+    parent, attachToParent);
+ViewDataBinding binding = DataBindingUtil.<em>bindTo</em>(viewRoot, layoutId);
+</pre>
+
+
+<h3 id=views_with_ids>Views With IDs</h3>
+
+<p>A public final field will be generated for each View with an ID in the layout.
+The binding does a single pass on the View hierarchy, extracting the Views with
+IDs. This mechanism can be faster than calling findViewById for several Views. For example:</p>
+<pre class=prettyprint>
+&lt;<strong>layout xmlns:android="http://schemas.android.com/apk/res/android"</strong>>
+   &lt;<strong>data</strong>>
+       &lt;<strong>variable name="user" type="com.example.User"</strong>/>
+   &lt;/<strong>data</strong>>
+   &lt;<strong>LinearLayout
+       android:orientation="vertical"
+       android:layout_width="match_parent"
+       android:layout_height="match_parent"</strong>>
+       &lt;<strong>TextView android:layout_width="wrap_content"
+           android:layout_height="wrap_content"
+           android:text="&commat;{user.firstName}"
+</strong>           <strong>android:id="&commat;+id/firstName"</strong>/>
+       &lt;<strong>TextView android:layout_width="wrap_content"
+           android:layout_height="wrap_content"
+           android:text="&commat;{user.lastName}"</strong>           <strong>android:id="&commat;+id/lastName"</strong>/>
+   &lt;/<strong>LinearLayout</strong>>
+&lt;/<strong>layout</strong>>
+</pre>
+
+Will generate a binding class with:
+<pre class=prettyprint>
+<strong>public final </strong>TextView <strong>firstName</strong>;
+<strong>public final </strong>TextView <strong>lastName</strong>;
+</pre>
+
+<p>IDs are not nearly as necessary as without data binding, but there are still
+some instances where access to Views are still necessary from code.</p>
+<h3 id=variables>Variables</h3>
+
+<p>Each variable will be given a accessor methods.</p>
+<pre class=prettyprint>
+&lt;<strong>data</strong>>
+    &lt;<strong>import type="android.graphics.drawable.Drawable"</strong>/>
+    &lt;<strong>variable name="user"  type="com.example.User"</strong>/>
+    &lt;<strong>variable name="image" type="Drawable"</strong>/>
+    &lt;<strong>variable name="note"  type="String"</strong>/>
+&lt;/<strong>data</strong>>
+</pre>
+
+<p>will generate setters and getters in the binding:</p>
+<pre class=prettyprint>
+<strong>public abstract </strong>com.example.User getUser();
+<strong>public abstract void </strong>setUser(com.example.User user);
+<strong>public abstract </strong>Drawable getImage();
+<strong>public abstract void </strong>setImage(Drawable image);
+<strong>public abstract </strong>String getNote();
+<strong>public abstract void </strong>setNote(String note);
+</pre>
+
+
+<h3 id=viewstubs>ViewStubs</h3>
+
+<p>ViewStubs are a little different from normal Views. They start off invisible
+and when they either are made visible or are explicitly told to inflate, they
+replace themselves in the layout by inflating another layout.</p>
+
+<p>Because the ViewStub essentially disappears from the View hierarchy, the View
+in the binding object must also disappear to allow collection. Because the
+Views are final, a ViewStubProxy object takes the place of the ViewStub, giving
+the developer access to the ViewStub when it exists and also access to the
+inflated View hierarchy when the ViewStub has been inflated.</p>
+
+<p>When inflating another layout, a binding must be established for the new
+layout. Therefore, the ViewStubProxy must listen to the ViewStub&apos;s
+OnInflateListener and establish the binding at that time. Since only one can
+exist, the ViewStubProxy allows the developer to set an OnInflateListener on it
+that it will call after establishing the binding.</p>
+
+<h3 id=advanced_binding>Advanced Binding</h3>
+
+
+<h4 id=dynamic_variables>Dynamic Variables</h4>
+
+<p>At times, the specific binding class won&apos;t be known. For example, a
+RecyclerView Adapter operating against arbitrary layouts won&apos;t know the
+specific binding class. It still must assign the binding value during the
+onBindViewHolder.</p>
+
+<p>In this example, all layouts that the RecyclerView binds to have an "item"
+variable. The BindingHolder has a getBinding method returning the <code>ViewDataBinding</code> base.</p>
+<pre class=prettyprint>
+<strong>public void </strong>onBindViewHolder(BindingHolder holder, <strong>int </strong>position) {
+   <strong>final </strong>T item = <strong>mItems</strong>.get(position);
+   holder.getBinding().setVariable(BR.item, item);
+   holder.getBinding().executePendingBindings();
+}
+</pre>
+
+
+<h4 id=immediate_binding>Immediate Binding</h4>
+
+<p>When a variable or observable changes, the binding will be scheduled to change
+before the next frame. There are times, however, when binding must be executed
+immediately. To force execution, use the executePendingBindings() method.</p>
+<h2 id=attribute_setters>Attribute Setters</h2>
+
+<p>Whenever a bound value changes, the generated binding class must call a setter
+method on the View with the binding expression. The data binding framework has
+ways to customize which method to call to set the value.</p>
+<h3 id=automatic_setters>Automatic Setters</h3>
+
+For an attribute, data binding tries to find the method setAttribute. The
+namespace for the attribute does not matter, only the attribute name itself.
+
+<p>For example, an expression associated with TextView&apos;s attribute <strong><code>android:text</code></strong> will look for a setText(String). If the expression returns an int, data
+binding will search for a setText(int) method. Be careful to have the
+expression return the correct type, casting if necessary.Note that data binding will work even if no attribute exists with the given
+name. You can then easily "create" attributes for any setter by using data
+binding. For example, support DrawerLayout doesn&apos;t have any attributes, but
+plenty of setters. You can use the automatic setters to use one of these.</p>
+<pre class=prettyprint>
+&lt;android.support.v4.widget.<strong>DrawerLayout
+    android:layout_width="wrap_content"
+    android:layout_height="wrap_content"
+    app:scrimColor="&commat;{&commat;color/scrim}"
+    app:drawerListener="&commat;{fragment.drawerListener}"/></strong>
+</pre>
+
+
+<h3 id=renamed_setters>Renamed Setters</h3>
+
+<p>Some attributes have setters that don&apos;t match by name. For these methods, an
+attribute may be associated with the setter through BindingMethods annotation.
+This must be associated with a class and contains BindingMethod annotations,
+one for each renamed method. For example, the <strong><code>android:tint</code></strong> attribute is really associated with setImageTintList, not setTint.</p>
+<pre class=prettyprint>
+&commat;BindingMethods({
+       &commat;BindingMethod(type = <strong>"android.widget.ImageView"</strong>,
+                      attribute = <strong>"android:tint"</strong>,
+                      method = <strong>"setImageTintList"</strong>),
+})
+</pre>
+
+<p>It is unlikely that developers will need to rename setters; the android
+framework attributes have already been implemented.</p>
+<h3 id=custom_setters>Custom Setters</h3>
+
+<p>Some attributes need custom binding logic. For example, there is no associated
+setter for the <strong><code>android:paddingLeft</code></strong> attribute. Instead, setPadding(left, top, right, bottom) exists. A static
+binding adapter method with the BindingAdapter annotation allows the developer
+to customize how a setter for an attribute is called.</p>
+
+<p>The android attributes have already had BindingAdapters created. For example,
+here is the one for paddingLeft:</p>
+<pre class=prettyprint></p>
+&commat;BindingAdapter(<strong>"android:paddingLeft"</strong>)
+<strong>public static void </strong>setPaddingLeft(View view, <strong>int </strong>padding) {
+   view.setPadding(padding,
+                   view.getPaddingTop(),
+                   view.getPaddingRight(),
+                   view.getPaddingBottom());
+}
+</pre>
+
+<p>Binding adapters are useful for other types of customization. For example, a
+  custom loader can be called off-thread to load an image.</p>
+
+<p>Developer-created binding adapters will override the data binding default
+adapters when there is a conflict.</p>
+
+<p>You can also have adapters that receive multiple parameters. </p>
+<pre class=prettyprint>
+&commat;BindingAdapter(attributes = {<strong>"bind:imageUrl"</strong>, <strong>"bind:error"</strong>})
+<strong>public static void </strong>loadImage(ImageView view, String url, Drawable error) {
+   Picasso.<em>with</em>(view.getContext()).load(url).error(error).into(view);
+}
+</pre>
+
+<p>This adapter will be called if both <strong>imageUrl </strong>and <strong>error </strong>are used for an ImageView and <em>imageUrl </em>is a string and <em>error</em> is a drawable.</p>
+<ul>
+  <li> Custom namespaces are ignore during matching.
+  <li> You can also write adapters for android namespace.
+</ul>
+
+<pre class=prettyprint>
+&lt;ImageView app:imageUrl=“&commat;{venue.imageUrl}”
+app:error=“&commat;{&commat;drawable/venueError}”/>
+</pre>
+
+
+<h2 id=converters>Converters</h2>
+
+
+<h3 id=object_conversions>Object Conversions</h3>
+
+<p>When an Object is returned from a binding expression, a setter will be chosen
+from the automatic, renamed, and custom setters. The Object will be cast to a
+parameter type of the chosen setter.</p><p>This is a convenience for those using ObservableMaps to hold data. for example:</p>
+<pre class=prettyprint>
+&lt;<strong>TextView
+   android:text=&apos;&commat;{userMap["lastName"]}&apos;
+   android:layout_width="wrap_content"
+   android:layout_height="wrap_content"</strong>/>
+</pre>
+
+<p>The userMap returns an Object and that Object will be automatically cast to
+parameter type found in the setter <code>setText(CharSequence)</code>. When there may be confusion about the parameter type, the developer will need
+to cast in the expression.</p>
+<h3 id=custom_conversions>Custom Conversions</h3>
+
+<p>Sometimes conversions should be automatic between specific types. For example,
+when setting the background:</p>
+<pre class=prettyprint>
+&lt;<strong>View
+   android:background="&commat;{isError ? &commat;color/red : &commat;color/white}"
+   android:layout_width="wrap_content"
+   android:layout_height="wrap_content"</strong>/>
+</pre>
+
+<p>Here, the background takes a <code>Drawable</code>, but the color is an integer. Whenever a <code>Drawable</code> is expected and an integer is returned, the <code>int</code> should be converted to a <code>ColorDrawable</code>. This conversion is done using a static method with a BindingConversion
+annotation:</p>
+<pre class=prettyprint>
+&commat;BindingConversion
+<strong>public static </strong>ColorDrawable convertColorToDrawable(<strong>int </strong>color) {
+   <strong>return new </strong>ColorDrawable(color);
+}
+</pre>
+
+<p>Note that conversions only happen at the setter level, so it is <strong>not allowed </strong>to mix types like this:</p>
+<pre class=prettyprint>
+&lt;<strong>View
+   android:background="&commat;{isError ? &commat;drawable/error : &commat;color/white}"
+   android:layout_width="wrap_content"
+   android:layout_height="wrap_content"</strong>/>
+</pre>
+
diff --git a/docs/html/preview/license.html b/docs/html/preview/download.jd
similarity index 70%
copy from docs/html/preview/license.html
copy to docs/html/preview/download.jd
index deb16aa..4341f8d 100644
--- a/docs/html/preview/license.html
+++ b/docs/html/preview/download.jd
@@ -1,105 +1,20 @@
-<!DOCTYPE html>
+page.title=Download
+page.image=images/cards/card-download_16-9_2x.png
 
-<html>
-<head>
+@jd:body
 
+<div style="position:relative; min-height:600px">
 
-<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
-<meta name="viewport" content="width=970" />
+  <div class="wrap" id="tos" style="position:absolute;display:none;width:inherit;">
 
-<meta name="Description" content="To get started with the Android SDK Preview, you must agree to the following terms and conditions. As described below, please note that this is a preview version of the Android SDK, subject to change, that you use at your own risk.">
-<link rel="shortcut icon" type="image/x-icon" href="/favicon.ico" />
-<title>License Agreement | Android Developers</title>
+    <p class="sdk-terms-intro">Before downloading and installing components of the Android Preview
+      SDK, you must agree to the following terms and conditions.</p>
 
-<!-- STYLESHEETS -->
-<link rel="stylesheet"
-href="//fonts.googleapis.com/css?family=Roboto+Condensed">
-<link rel="stylesheet" href="//fonts.googleapis.com/css?family=Roboto:light,regular,medium,thin,italic,mediumitalic,bold"
-  title="roboto">
-<link href="/assets/css/default.css" rel="stylesheet" type="text/css">
+    <h2 class="norule">Terms and Conditions</h2>
 
-
-
-<!-- JAVASCRIPT -->
-<script src="//www.google.com/jsapi" type="text/javascript"></script>
-<script src="/assets/js/android_3p-bundle.js" type="text/javascript"></script>
-<script type="text/javascript">
-  var toRoot = "/";
-  var metaTags = [];
-  var devsite = false;
-</script>
-<script src="/assets/js/docs.js" type="text/javascript"></script>
-
-<script>
-  (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
-  (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
-  m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
-  })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
-
-  ga('create', 'UA-5831155-1', 'android.com');
-  ga('create', 'UA-49880327-2', 'android.com', {'name': 'universal'});  // New tracker);
-  ga('send', 'pageview');
-  ga('universal.send', 'pageview'); // Send page view for new tracker.
-</script>
-
-</head>
-
-
-<body class="gc-documentation" itemscope="" itemtype="http://schema.org/Article">
-
-
-<a name="top"></a>
-<div id="body-content">
-<div class="fullpage">
-<div id="jd-content">
-  <div class="jd-descr" itemprop="articleBody">
-<style>
-body,html, #qv {background-color:#e9e9e9}
-
-#qv * { font-weight:bold;}
-
-.fullpage>#footer,
-#jd-content>.content-footer.wrap {
-  display:none;
-}
-
-.content-footer {
-  display: none;
-}
-</style>
-
- <div style="border-bottom: 1px solid #a5c43a; position: absolute; left: 0; right: 0; top: 0;">
-      <div class="wrap" style="position: relative; height: 45px; padding: 0 20px;">
-        <a href="/index.html" style="position:absolute;top:8px">
-          <img src="/assets/images/dac_logo.png" srcset="/assets/images/dac_logo@2x.png 2x" width="123" height="25" alt="Android Developers home page">
-        </a>
-      </div>
-    </div>
-   
-    <div class="landing-rest-of-page">
-            <div class="landing-section" style="padding:55px 10px 0">
-
-<div class="wrap">
-
-<div class="col-16" id="doc-col" >
-
-        <h1 itemprop="name" >L Developer Preview License Agreement</h1>
-
-<div class="jd-descr" itemprop="articleBody">
-    <p>
-If you are using the Android SDK
-Preview, you must agree to the following terms
-and conditions. As described below, please note that the preview version of the
-Android SDK is subject to change, and that you use it at your own risk.  The
-Android SDK Preview is not a stable release, and may contain errors and defects
-that can result in serious damage to your computer systems, devices and data.
-</p>
-
-<p>
+    <div class="sdk-terms" onfocus="this.blur()" style="width:678px">
 This is the Android SDK Preview License Agreement (the “License Agreement”).
-</p>
 
-<div class="sdk-terms" style="height:auto;border:0;padding:0;width:940px">
 1. Introduction
 
 1.1 The Android SDK Preview (referred to in the License Agreement as the “Preview” and specifically including the Android system files, packaged APIs, and Preview library files, if and when they are made available) is licensed to you subject to the terms of the License Agreement. The License Agreement forms a legally binding contract between you and Google in relation to your use of the Preview.
@@ -140,7 +55,7 @@
 
 4.1 Google agrees that nothing in the License Agreement gives Google any right, title or interest from you (or your licensors) under the License Agreement in or to any software applications that you develop using the Preview, including any intellectual property rights that subsist in those applications.
 
-4.2 You agree to use the Preview and write applications only for purposes that are permitted by (a) the License Agreement, and (b) any applicable law, regulation or generally accepted practices or guidelines in the relevant jurisdictions (including any laws regarding the export of data or software to and from the United States or other relevant countries). 
+4.2 You agree to use the Preview and write applications only for purposes that are permitted by (a) the License Agreement, and (b) any applicable law, regulation or generally accepted practices or guidelines in the relevant jurisdictions (including any laws regarding the export of data or software to and from the United States or other relevant countries).
 
 4.3 You agree that if you use the Preview to develop applications, you will protect the privacy and legal rights of users. If users provide you with user names, passwords, or other login information or personal information, you must make the users aware that the information will be available to your application, and you must provide legally adequate privacy notice and protection for those users. If your application stores personal or sensitive information provided by users, it must do so securely. If users provide you with Google Account information, your application may only use that information to access the user's Google Account when, and for the limited purposes for which, each user has given you permission to do so.
 
@@ -227,48 +142,211 @@
 14.6 The License Agreement may not be assigned or transferred by you without the prior written approval of Google, and any attempted assignment without such approval will be void. You shall not delegate your responsibilities or obligations under the License Agreement without the prior written approval of Google.
 
 14.7 The License Agreement, and your relationship with Google under the License Agreement, shall be governed by the laws of the State of California without regard to its conflict of laws provisions. You and Google agree to submit to the exclusive jurisdiction of the courts located within the county of Santa Clara, California to resolve any legal matter arising from the License Agreement. Notwithstanding this, you agree that Google shall still be allowed to apply for injunctive remedies (or an equivalent type of urgent legal relief) in any jurisdiction.
+  </div><!-- sdk terms -->
 
 
-</div>
-    </div>
-  </div>
 
-</div>
-  </div> <!-- end landing-body-content -->
-
+    <div id="sdk-terms-form">
+      <p>
+        <input id="agree" type="checkbox" name="agree" value="1" onclick="onAgreeChecked()" />
+        <label id="agreeLabel" for="agree">I have read and agree with the above terms and conditions</label>
+      </p>
+      <p><a href="" class="button disabled" id="downloadForRealz" onclick="return onDownloadForRealz(this);"></a></p>
     </div>
 
-      <div class="content-footer wrap" itemscope=""
-        itemtype="http://schema.org/SiteNavigationElement">
 
-        <div class="paging-links layout-content-col col-10">
-
-        </div>
-
-      </div>
+  </div><!-- end TOS -->
 
 
+  <div id="landing">
 
-
-  </div> <!-- end jd-content -->
-
-<div id="footer" class="wrap" style="width:940px">
-
-
-  <div id="copyright">
-
-  Except as noted, this content is
-  licensed under <a href="http://creativecommons.org/licenses/by/2.5/">
-  Creative Commons Attribution 2.5</a>. For details and
-  restrictions, see the <a href="https://developer.android.com/license.html">Content
-  License</a>.
+<div id="qv-wrapper">
+  <div id="qv">
+    <h2>In this document</h2>
+      <ol>
+        <li><a href="#sdk">Preview SDK</a></li>
+        <li><a href="#docs">Developer Documentation</a></li>
+        <li><a href="#images">Hardware System Images</a></li>
+      </ol>
   </div>
+</div>
 
 
-</div> <!-- end footer -->
-</div><!-- end doc-content -->
+<p>
+  The Android M Preview SDK includes development tools, Android system files, and library files to
+  help you test your app and the new APIs coming in the next release of the platform. This document
+  describes how to get the downloadable components of the preview for testing your app.
+</p>
 
-</div> <!-- end body-content -->
 
-</body>
-</html>
+<h2 id="sdk">Preview SDK</h2>
+
+<p>
+  The Preview SDK is available for download through the <a href=
+  "{@docRoot}tools/help/sdk-manager.html">Android SDK Manager</a>. For more information on
+  downloading and configuring the Preview SDK, see <a href=
+  "{@docRoot}preview/setup-sdk.html#downloadSdk">Set Up the Preview SDK</a>.
+</p>
+
+
+<h2 id="#docs">Developer Documentation</h2>
+
+<p>
+  The developer documentation download package provides detailed API reference information and an API difference report for the preview.
+</p>
+
+<table>
+  <tr>
+    <th scope="col">Description</th>
+    <th scope="col">Download / Checksums</th>
+  </tr>
+  <tr id="docs-dl">
+    <td>Android M Preview<br>Developer Docs</td>
+    <td><a href="#top" onclick="onDownload(this)"
+      >m-preview-devdocs-r1.zip</a><br>
+      MD5: 5a6ae77217978cb7b958a240c2e80b57<br>
+      SHA-1: ac1d8a8e4f4a1dca5864dc733caa940bffc28616
+    </td>
+  </tr>
+<table>
+
+
+<h2 id="images">Hardware System Images</h2>
+
+<p>
+  These system images allow you install a preview version of the platform on a physical device for
+  testing. By configuring a device with one of these images, you can install and test your app to
+  see how it performs on the next version of the platform. The process of installing a system image
+  on a device <em>removes all data from the device</em>, so you should backup your data before
+  installing a system image.
+</p>
+
+<p class="warning">
+  <b>Warning:</b> The following Android system images are previews and are subject to change. Your
+  use of these system images is governed by the Android SDK Preview License Agreement. The Android
+  preview system images are not stable releases, and may contain errors and defects that can result
+  in damage to your computer systems, devices, and data. The preview Android system images are not
+  subject to the same testing as the factory OS and can cause your phone and installed services and
+  applications to stop working.
+</p>
+
+<table>
+  <tr>
+    <th scope="col">Device</th>
+    <th scope="col">Download / Checksums</th>
+  </tr>
+  <tr id="hammerhead">
+    <td>Nexus 5 (GSM/LTE) <br>"hammerhead"</td>
+    <td><a href="#top" onclick="onDownload(this)"
+      >hammerhead-mpv79-preview-ac1d8a8e.tgz</a><br>
+      MD5: 5a6ae77217978cb7b958a240c2e80b57<br>
+      SHA-1: ac1d8a8e4f4a1dca5864dc733caa940bffc28616
+    </td>
+  </tr>
+  <tr id="shamu">
+    <td>Nexus 6 <br>"shamu"</td>
+    <td><a href="#top" onclick="onDownload(this)"
+      >shamu-mpv79-preview-ac1d8a8e.tgz</a><br>
+      MD5: 5a6ae77217978cb7b958a240c2e80b57<br>
+      SHA-1: ac1d8a8e4f4a1dca5864dc733caa940bffc28616
+    </td>
+  </tr>
+  <tr id="volantis">
+    <td>Nexus 9 <br>"volantis"</td>
+    <td><a href="#top" onclick="onDownload(this)"
+      >volantis-mpv79-preview-ac1d8a8e.tgz</a><br>
+      MD5: 5a6ae77217978cb7b958a240c2e80b57<br>
+      SHA-1: ac1d8a8e4f4a1dca5864dc733caa940bffc28616
+    </td>
+  </tr>
+  <tr id="fugu">
+    <td>Nexus Player <br>"fugu"</td>
+    <td><a href="#top" onclick="onDownload(this)"
+      >fugu-mpv79-preview-d0ddf8ce.tgz</a><br>
+      MD5: b293a5d3a4e07beabebcc0be85ad68a2<br>
+      SHA-1: d0ddf8ce733ba2a34279cdff8827fd604762c2342d
+    </td>
+  </tr>
+</table>
+
+<h3 id="install-image">Install an Image to a Device</h3>
+
+<p>
+  In order to use a device image for testing, you must install it on a compatible device. Follow
+  the instructions below to install a system image:
+</p>
+
+<ol>
+  <li>Download and uncompress one of the system image packages listed here.</li>
+  <li>Backup any data you want to preserve from the device.</li>
+  <li>Follow the instructions at
+  <a href="https://developers.google.com/android/nexus/images#instructions">developers.google.com/android</a>
+  to flash the image onto your device.</li>
+</ol>
+
+<p class="note">
+  <strong>Note:</strong> Once you have flashed a development device the preview system image,
+  it is upgraded automatically with the next preview release through over-the-air (OTA) updates.
+</p>
+
+<h3 id="revertDevice">Revert a Device to Factory Specifications</h3>
+
+<p>
+  If you want to uninstall the Preview and revert the device to factory specifications, go to
+  <a href="http://developers.google.com/android/nexus/images">developers.google.com/android</a> and
+  download the image you want to flash to for your device. Follow the instructions on that page to
+  flash the image to your device.
+</p>
+
+  </div><!-- landing -->
+
+</div><!-- relative wrapper -->
+
+
+
+<script>
+  var urlRoot = "http://storage.googleapis.com/androiddevelopers/preview/";
+  function onDownload(link) {
+
+    $("#downloadForRealz").html("Download " + $(link).text());
+    $("#downloadForRealz").attr('href', urlRoot + $(link).text());
+
+    $("#tos").fadeIn('fast');
+    $("#landing").fadeOut('fast');
+
+    return true;
+  }
+
+
+  function onAgreeChecked() {
+    /* verify that the TOS is agreed */
+    if ($("input#agree").is(":checked")) {
+      /* reveal the download button */
+      $("a#downloadForRealz").removeClass('disabled');
+    } else {
+      $("a#downloadForRealz").addClass('disabled');
+    }
+  }
+
+  function onDownloadForRealz(link) {
+    if ($("input#agree").is(':checked')) {
+      $("#tos").fadeOut('fast');
+      $("#landing").fadeIn('fast');
+      ga('send', 'event', 'M Preview', 'System Image', $("#downloadForRealz").html());
+      location.hash = "";
+      return true;
+    } else {
+      $("label#agreeLabel").parent().stop().animate({color: "#258AAF"}, 200,
+        function() {$("label#agreeLabel").parent().stop().animate({color: "#222"}, 200)}
+      );
+      return false;
+    }
+  }
+
+  $(window).hashchange( function(){
+    if (location.hash == "") {
+      location.reload();
+    }
+  });
+
+</script>
diff --git a/docs/html/preview/features/runtime-permissions.jd b/docs/html/preview/features/runtime-permissions.jd
new file mode 100644
index 0000000..4a01010
--- /dev/null
+++ b/docs/html/preview/features/runtime-permissions.jd
@@ -0,0 +1,352 @@
+page.title=Android M Preview Runtime Permissions
+
+@jd:body
+
+
+<p>
+  The M Developer Preview introduces a new app permissions model which makes it
+  less frustrating for users to install and upgrade apps. If an app running on
+  M supports the new permissions model, the user does not have to grant any
+  permissions when they install or upgrade the app. Instead, the app requests
+  permissions as they are needed, and the system shows a dialog to the user
+  asking for the permission.
+</p>
+
+<p>
+  If an app supports the new permissions model, it can still be installed and
+  run on devices running older versions of Android, using the old permissions
+  model on those devices.
+</p>
+
+<h2>
+  Overview
+</h2>
+
+<p>
+  If an app's target SDK version is the M developer preview, that indicates
+  that the app uses the new permissions model:
+</p>
+
+<ul>
+  <li>Permissions are divided into <em>permission groups</em>, based on their
+  functionality. For example, all permissions relating to the camera and photo
+  roll are grouped in the Camera permission group,
+  [link]android.permission-group.CAMERA[/link].
+  </li>
+
+  <li>The app declares all the permissions it needs in the manifest, as in
+  earlier Android platforms.
+  </li>
+
+  <li>When the user installs or updates the app, the app is granted just those
+  permissions it requests that fall under <a href=
+  "https://android-preview.googleplex.com/reference/android/content/pm/PermissionInfo.html#PROTECTION_NORMAL">
+    <code>PROTECTION_NORMAL</code></a>, as well as signature and system permissions, as
+    described below. The user is <em>not</em> prompted to grant any permissions
+    at this time.
+  </li>
+
+  <li>When the app needs to perform any action that requires a permission, it
+  first checks whether it has that permission already. If it does not, it
+  requests to be granted that permission.
+  </li>
+
+  <li>When the app requests a permission, the system shows a dialog box to the
+  user, then calls the app's callback function to notify it whether the
+  permission was granted. If a user grants a permission, the app is given all
+  permissions in that permission's functional area that were declared in the
+  app manifest.
+  </li>
+
+  <li>If the app is not granted an appropriate permission, it should handle the
+  failure cleanly. For example, if the permission is just needed for an added
+  feature, the app can disable that feature. If the permission is essential for
+  the app to function, the app might disable all its functionality and inform
+  the user that they need to grant that permission.
+  </li>
+
+  <li>Users can always go to the app's <b>Settings</b> screen and turn on or
+  off any of the app's permissions.
+  <!-- insert screenshot of settings screen-->
+  If a user turns off an app's permissions, the app is
+  <em>not</em> notified.
+  </li>
+</ul>
+
+<h3>
+  System Apps and Signature Permissions
+</h3>
+
+<p>
+  Ordinarily, an app is just granted the <a href=
+  "https://android-preview.googleplex.com/reference/android/content/pm/PermissionInfo.html#PROTECTION_NORMAL">
+  <code>PROTECTION_NORMAL</code></a> permissions when it is installed. However,
+  under some circumstances the app is granted more permissions:
+</p>
+
+<ul>
+  <li>If an app is part of the system image, it is automatically granted all
+  the permissions listed in its manifest.
+  </li>
+
+  <li>Apps are granted all permissions listed in the manifest that fall under
+  <a href=
+  "https://android-preview.googleplex.com/reference/android/content/pm/PermissionInfo.html#PROTECTION_SIGNATURE">
+    PROTECTION_SIGNATURE</a>, if the app's signature matches the signature of
+    the app that declares the permissions.
+  </li>
+</ul>
+
+<p>
+  In both cases, the user can still revoke permissions at any time by going to
+  the app's <b>Settings</b> screen, so the app should continue to check for
+  permissions at run time and request them if necessary.
+</p>
+
+<h3>
+  Forwards and Backwards Compatibility
+</h3>
+
+<p>
+  If an app does not target the M developer preview, it continues to use the
+  old permissions model even on M devices. When the app is installed, the
+  system asks the user to grant all permissions listed in the app's manifest.
+</p>
+
+<p>
+  If an app using the new permissions model is run on a pre-M device, the
+  system treats it the same as any other app. Once again, the system asks the
+  user to grant all declared permissions at install time.
+</p>
+
+<h2 id="">Coding for Runtime Permissions</h2>
+
+<p>
+  If your app targets the new M Developer Preview, you must use the new
+  permissions model. This means that in addition to declaring your needed
+  permissions in the manifest, you must also check to see if you have the
+  permissions at run time, and request the permissions if you do not already
+  have them.
+</p>
+
+<h3>
+  Enabling the New Permissions Model
+</h3>
+
+<p>
+  To enable the new M Developer Preview permissions model, set the app's
+  <a href=
+  "http://developer.android.com/guide/topics/manifest/uses-sdk-element.html#target">
+  targetSdkVersion</a> attribute to "M". Doing this enables all the new
+  permissions features.
+</p>
+
+<!-- TODO: Insert manifest snippet -->
+
+<h3>
+  Designating a Permission for M Only
+</h3>
+
+<p>
+  You can use the new <code>&lt;uses-permission-sdk-m&gt;</code> element in the
+  app manifest to indicate that a permission is only needed on the M platform.
+  If you declare a permission this way, then whenever the app is installed on
+  an older device, the user is not prompted to grant the permission and the
+  permission is not granted to the app. This allows you to add new permissions
+  to updated versions of your app without forcing users to grant permissions
+  when they install the update.
+</p>
+
+<p>
+  If the app is running on a device with the M developer preview,
+  <code>&lt;uses-permission-sdk-m&gt;</code> behaves the same as
+  <code>&lt;uses-permission&gt;</code>. The user is not prompted to grant any
+  permissions when the app is installed, and the app requests permissions as
+  they are needed.
+</p>
+
+<h3 id="prompting">
+  Prompting for Permissions on the M Preview
+</h3>
+
+<p>
+  If your app uses the new M Developer Preview permissions model, the user is
+  not asked to grant all permissions when the app is first launched on a device
+  running the M Preview. Instead, your app requests permissions as they are
+  needed. When your app requests a permission, the system shows a dialog to the
+  user.
+</p>
+
+<p>
+  An app should follow this workflow to request permissions on an Android M
+  device. The device can check what platform it's running on by checking the
+  value of {@link android.os.Build.VERSION#SDK_INT Build.VERSION.SDK_INT}. If
+  the device is running the M Developer Preview, {@link
+  android.os.Build.VERSION#SDK_INT SDK_INT} is 23.
+  <!-- TODO: Confirm this number -->
+</p>
+<ol>
+  <li>When the user tries to do something that requires a permission, the app
+  checks to see if it currently has permission to perform this operation. To do
+  this, the app calls
+   <a href="https://android-preview.googleplex.com/reference/android/content/Context.html#checkSelfPermission(java.lang.String)"><code>Context.CheckSelfPermission(<em>permission_name</em>)</code></a> . The
+  app should do this even if it knows the user has already granted that
+  permission, since the user can revoke an app's permissions at any time. For
+  example, if a user wants to use an app to take a picture, the app calls
+  <a href="https://android-preview.googleplex.com/reference/android/content/Context.html#checkSelfPermission(java.lang.String)"><code>Context.CheckSelfPermission(Manifest.permission.CAMERA)</code></a>.
+  </li>
+
+<!-- TODO: Full list of permissions (or link to that list),
+  and how they break down by functional area]-->
+
+  <li>If the permission is not already granted to the app, the app calls
+  <a href=
+  "https://android-preview.googleplex.com/reference/android/app/Activity.html#requestPermissions(java.lang.String[],%20int)">
+    <code>requestPermissions()</code></a> to request the
+    appropriate permission or permissions. This method functions
+    asynchronously.
+    <!-- TODO: insert code snippet showing permission check and request -->
+  </li>
+
+  <li>The system presents a dialog box to the user.
+  <!-- TODO: insert screenshot of permissions dialog box -->
+    When the user responds, the system calls <a href=
+    "https://android-preview.googleplex.com/reference/android/app/Activity.html#onRequestPermissionsResult(int,%20java.lang.String[],%20int[])">
+    <code>Activity.onRequestPermissionsResult()</code></a> with the
+    results; your app needs to override that method. The callback is passed the
+    same request code you passed to <a href=
+    "https://android-preview.googleplex.com/reference/android/app/Activity.html#requestPermissions(java.lang.String[],%20int)">
+    <code>requestPermissions()</code></a>.
+    <!-- TODO: Insert code snippet of callback method -->
+  </li>
+
+  <li>If the user grants a permission, the app is given all permissions
+  in that functional area that are listed in the app manifest.
+  If the request is denied, you should take appropriate action. For
+  example, you might disable any menu actions that depend on this permission.
+  </li>
+</ul>
+
+<p>
+  When the system asks the user to grant a permission, the user has the option
+  of telling the system not to ask for that permission again. In that case,
+  when an app asks for that permission with <a href=
+    "https://android-preview.googleplex.com/reference/android/app/Activity.html#requestPermissions(java.lang.String[],%20int)">
+    <code>requestPermissions()</code></a>, the
+  system immediately denies the request. For this reason, your app cannot
+  assume that any direct interaction with the user has taken place.
+</p>
+
+<p>
+  If your app runs on a device that has SDK 22 or lower, the app uses the old
+  permissions model. When the user installs the app, they are prompted to grant
+  all the permissions your app requests in its manifest, except for those
+  permissions which are labeled with <code>&lt;uses-permission-sdk-m&gt;</code>.
+</p>
+
+<h2 id="">Best Practices</h2>
+
+<p>
+  The new permissions model gives users a smoother experience, and makes it
+  easier for them to install apps and feel comfortable with what the apps are
+  doing. We recommend the following best practices to take full advantage of
+  the new model.
+</p>
+
+<h3>
+  Don't Overwhelm the User
+</h3>
+
+<p>
+  If you confront the user with a lot of permissions requests at once, you may
+  overwhelm the user and cause them to quit your app. Instead, you should ask
+  for permissions as you need them.
+</p>
+
+<p>
+  In some cases, one or more permissions might be absolutely essential to your
+  app. In that case, it might make sense to ask for all the permissions as soon
+  as the app launches.
+  <!-- TODO: insert screenshot of dialog box asking for several permissions -->
+  For example, if you make a photography app, the app would
+  need access to the device camera. When the user launches the app for the
+  first time, they won't be surprised to be asked to give permission to use the
+  camera. But if the same app also had a feature to share photos with the
+  user's contacts, you probably should <em>not</em> ask for that permission at
+  first launch. Instead, wait until the user tries to use the "sharing" feature
+  and ask for the permission then.
+</p>
+
+<p>
+  If your app provides a tutorial, it may make sense to request app's essential
+  permissions at the end of the tutorial sequence.
+</p>
+
+<h3>
+  Explain Why You Need Permissions
+</h3>
+
+<p>
+  The permissions screen shown by the system when you call <a href=
+  "https://android-preview.googleplex.com/reference/android/app/Activity.html#requestPermissions(java.lang.String[],%20int)">
+  <code>requestPermissions()</code></a> says what permission your app wants,
+  but doesn't say why you want it. In some cases, the user may find that
+  puzzling. It's a good idea to explain to the user why your app wants the
+  permissions before you call <a href=
+  "https://android-preview.googleplex.com/reference/android/app/Activity.html#requestPermissions(java.lang.String[],%20int)">
+  <code>requestPermissions()</code></a>.
+</p>
+
+<p>
+  For example, a photography app might want to use location services, so it can
+  geotag the photos. A typical user might not understand that a photo can
+  contain location information, and would be puzzled why their photography app
+  wanted to know the location. So in this case, it's a good idea for the app to
+  tell the user about this feature <em>before</em> calling
+  <a href=
+  "https://android-preview.googleplex.com/reference/android/app/Activity.html#requestPermissions(java.lang.String[],%20int)">
+  <code>requestPermissions()</code></a>.
+</p>
+
+<p>
+  As noted, one way to do this is to incorporate these requests into an app
+  tutorial. The tutorial can show each of the app's features in turn, and as it
+  does this, it can explain what permissions are needed. For example, the
+  photography app's tutorial demonstrate its "share photos with your contacts"
+  feature, then tell the user that they'll need to give permission for the app
+  to see the user's contacts, and <em>then</em> call <a href=
+  "https://android-preview.googleplex.com/reference/android/app/Activity.html#requestPermissions(java.lang.String[],%20int)">
+  <code>requestPermissions()</code></a>
+  to get that access. Of course, some users will want to skip the tutorial, so
+  you'll still need to check for and request permissions during the app's
+  normal operation.
+</p>
+
+<h3>
+  Opt Out If Necessary
+</h3>
+
+<p>
+  Until you are ready to use the new permissions model, you can opt out simply
+  by setting your app's <a href=
+  "http://developer.android.com/guide/topics/manifest/uses-sdk-element.html#target">
+  targetSdkVersion</a> to 22 or less. If you do this, the system will use the
+  old permissions model. When the user downloads the app, they will be prompted
+  to grant all the permissions listed in the manifest.
+</p>
+
+<p>
+  With the M Developer Preview, users can turn off permissions for <em>any</em>
+  app from the app's Settings page, regardless of what SDK version the app
+  targets. For this reason, it's a good idea to follow the steps described in
+  <a href="#prompting">"Prompting for Permissions on the M Preview"</a> even if
+  your app doesn't fully support the new permissions model.
+</p>
+
+<p class="note">
+  <strong>Note:</strong> If a user turns off permissions for a legacy app, the system
+  silently disables the appropriate functionality. When the app attempts to
+  perform an operation that requires that permission, the operation will not
+  necessarily cause an exception. Instead, it might return an empty data set or
+  otherwise signal an error.
+</p>
diff --git a/docs/html/preview/images/direct-share-screen.png b/docs/html/preview/images/direct-share-screen.png
new file mode 100644
index 0000000..9e879e0
--- /dev/null
+++ b/docs/html/preview/images/direct-share-screen.png
Binary files differ
diff --git a/docs/html/preview/images/direct-share-screen_2x.png b/docs/html/preview/images/direct-share-screen_2x.png
new file mode 100644
index 0000000..3bbfa7d
--- /dev/null
+++ b/docs/html/preview/images/direct-share-screen_2x.png
Binary files differ
diff --git a/docs/html/preview/images/fingerprint-screen.png b/docs/html/preview/images/fingerprint-screen.png
new file mode 100644
index 0000000..0bb49ef
--- /dev/null
+++ b/docs/html/preview/images/fingerprint-screen.png
Binary files differ
diff --git a/docs/html/preview/images/fingerprint-screen_2x.png b/docs/html/preview/images/fingerprint-screen_2x.png
new file mode 100644
index 0000000..25ce51a
--- /dev/null
+++ b/docs/html/preview/images/fingerprint-screen_2x.png
Binary files differ
diff --git a/docs/html/preview/images/m-preview-timeline.png b/docs/html/preview/images/m-preview-timeline.png
new file mode 100644
index 0000000..2a45333
--- /dev/null
+++ b/docs/html/preview/images/m-preview-timeline.png
Binary files differ
diff --git a/docs/html/preview/images/text-selection.gif b/docs/html/preview/images/text-selection.gif
new file mode 100644
index 0000000..1d82fc6
--- /dev/null
+++ b/docs/html/preview/images/text-selection.gif
Binary files differ
diff --git a/docs/html/preview/index.html b/docs/html/preview/index.html
deleted file mode 100644
index 7cd029f..0000000
--- a/docs/html/preview/index.html
+++ /dev/null
@@ -1,631 +0,0 @@
-<!DOCTYPE html>
-
-<html>
-<head>
-
-
-<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
-<meta name="viewport" content="width=970" />
-
-<meta name="Description" content="Test and build your apps against the next version of Android to ensure they're ready when the platform officially launches.">
-<link rel="shortcut icon" type="image/x-icon" href="/favicon.ico" />
-<title>Android L Developer Preview | Android Developers</title>
-
-<!-- STYLESHEETS -->
-<link rel="stylesheet"
-href="//fonts.googleapis.com/css?family=Roboto+Condensed">
-<link rel="stylesheet" href="//fonts.googleapis.com/css?family=Roboto:light,regular,medium,thin,italic,mediumitalic,bold"
-  title="roboto">
-<link href="/assets/css/default.css" rel="stylesheet" type="text/css">
-
-
-
-<!-- JAVASCRIPT -->
-<script src="//www.google.com/jsapi" type="text/javascript"></script>
-<script src="/assets/js/android_3p-bundle.js" type="text/javascript"></script>
-<script type="text/javascript">
-  var toRoot = "/";
-  var metaTags = [];
-  var devsite = false;
-</script>
-<script src="/assets/js/docs.js" type="text/javascript"></script>
-
-<script>
-  (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
-  (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
-  m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
-  })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
-
-  ga('create', 'UA-5831155-1', 'android.com');
-  ga('create', 'UA-49880327-2', 'android.com', {'name': 'universal'});  // New tracker);
-  ga('send', 'pageview');
-  ga('universal.send', 'pageview'); // Send page view for new tracker.
-</script>
-
-</head>
-
-
-<body class="gc-documentation" itemscope="" itemtype="http://schema.org/Article">
-
-
-<a name="top"></a>
-<a name="download"></a>
-<div id="body-content">
-<div class="fullpage">
-<div id="jd-content">
-  <div class="jd-descr" itemprop="articleBody">
-<style>
-body,html, #qv {background-color:#e9e9e9}
-
-#qv * { font-weight:bold;}
-
-.fullpage>#footer,
-#jd-content>.content-footer.wrap {
-  display:none;
-}
-
-.content-footer {
-  display: none;
-}
-</style>
-
-    <div style="border-bottom: 1px solid #a5c43a; position: absolute; left: 0; right: 0; top: 0; z-index:99">
-      <div class="wrap" style="position: relative; height: 45px; padding: 0 20px;">
-        <a href="/index.html" style="position:absolute;top:8px">
-          <img src="/assets/images/dac_logo.png" srcset="/assets/images/dac_logo@2x.png 2x" width="123" height="25" alt="Android Developers home page">
-        </a>
-      </div>
-    </div>
-
-
-
-
-
-
-
-
-
-
-
-
-
-    <div class="landing-rest-of-page" style="position:relative;">
-
-
-
-
-
-
-
-
-  <div class="wrap" id="tos" style="display:none;padding-top:90px">
-
-    <p class="sdk-terms-intro">Before downloading the Android Preview system image,
-      you must agree to the following terms and conditions.</p>
-
-      <h2 class="norule">Terms and Conditions</h2>
-    <div class="sdk-terms" onfocus="this.blur()" style="width:100%">
-This is the Android SDK Preview License Agreement (the “License Agreement”).
-
-1. Introduction
-
-1.1 The Android SDK Preview (referred to in the License Agreement as the “Preview” and specifically including the Android system files, packaged APIs, and Preview library files, if and when they are made available) is licensed to you subject to the terms of the License Agreement. The License Agreement forms a legally binding contract between you and Google in relation to your use of the Preview.
-
-1.2 "Android" means the Android software stack for devices, as made available under the Android Open Source Project, which is located at the following URL: http://source.android.com/, as updated from time to time.
-
-1.3 "Google" means Google Inc., a Delaware corporation with principal place of business at 1600 Amphitheatre Parkway, Mountain View, CA 94043, United States.
-
-2. Accepting the License Agreement
-
-2.1 In order to use the Preview, you must first agree to the License Agreement. You may not use the Preview if you do not accept the License Agreement.
-
-2.2 By clicking to accept and/or using the Preview, you hereby agree to the terms of the License Agreement.
-
-2.3 You may not use the Preview and may not accept the License Agreement if you are a person barred from receiving the Preview under the laws of the United States or other countries including the country in which you are resident or from which you use the Preview.
-
-2.4 If you will use the Preview internally within your company or organization you agree to be bound by the License Agreement on behalf of your employer or other entity, and you represent and warrant that you have full legal authority to bind your employer or such entity to the License Agreement. If you do not have the requisite authority, you may not accept the License Agreement or use the Preview on behalf of your employer or other entity.
-
-3. Preview License from Google
-
-3.1 Subject to the terms of the License Agreement, Google grants you a royalty-free, non-assignable, non-exclusive, non-sublicensable, limited, revocable license to use the Preview, personally or internally within your company or organization, solely to develop applications to run on the Android platform.
-
-3.2 You agree that Google or third parties owns all legal right, title and interest in and to the Preview, including any Intellectual Property Rights that subsist in the Preview. "Intellectual Property Rights" means any and all rights under patent law, copyright law, trade secret law, trademark law, and any and all other proprietary rights. Google reserves all rights not expressly granted to you.
-
-3.3 You may not use the Preview for any purpose not expressly permitted by the License Agreement. Except to the extent required by applicable third party licenses, you may not: (a) copy (except for backup purposes), modify, adapt, redistribute, decompile, reverse engineer, disassemble, or create derivative works of the Preview or any part of the Preview; or (b) load any part of the Preview onto a mobile handset or any other hardware device except a personal computer, combine any part of the Preview with other software, or distribute any software or device incorporating a part of the Preview.
-
-3.4 You agree that you will not take any actions that may cause or result in the fragmentation of Android, including but not limited to distributing, participating in the creation of, or promoting in any way a software development kit derived from the Preview.
-
-3.5 Use, reproduction and distribution of components of the Preview licensed under an open source software license are governed solely by the terms of that open source software license and not the License Agreement. You agree to remain a licensee in good standing in regard to such open source software licenses under all the rights granted and to refrain from any actions that may terminate, suspend, or breach such rights.
-
-3.6 You agree that the form and nature of the Preview that Google provides may change without prior notice to you and that future versions of the Preview may be incompatible with applications developed on previous versions of the Preview. You agree that Google may stop (permanently or temporarily) providing the Preview (or any features within the Preview) to you or to users generally at Google's sole discretion, without prior notice to you.
-
-3.7 Nothing in the License Agreement gives you a right to use any of Google's trade names, trademarks, service marks, logos, domain names, or other distinctive brand features.
-
-3.8 You agree that you will not remove, obscure, or alter any proprietary rights notices (including copyright and trademark notices) that may be affixed to or contained within the Preview.
-
-4. Use of the Preview by You
-
-4.1 Google agrees that nothing in the License Agreement gives Google any right, title or interest from you (or your licensors) under the License Agreement in or to any software applications that you develop using the Preview, including any intellectual property rights that subsist in those applications.
-
-4.2 You agree to use the Preview and write applications only for purposes that are permitted by (a) the License Agreement, and (b) any applicable law, regulation or generally accepted practices or guidelines in the relevant jurisdictions (including any laws regarding the export of data or software to and from the United States or other relevant countries).
-
-4.3 You agree that if you use the Preview to develop applications, you will protect the privacy and legal rights of users. If users provide you with user names, passwords, or other login information or personal information, you must make the users aware that the information will be available to your application, and you must provide legally adequate privacy notice and protection for those users. If your application stores personal or sensitive information provided by users, it must do so securely. If users provide you with Google Account information, your application may only use that information to access the user's Google Account when, and for the limited purposes for which, each user has given you permission to do so.
-
-4.4 You agree that you will not engage in any activity with the Preview, including the development or distribution of an application, that interferes with, disrupts, damages, or accesses in an unauthorized manner the servers, networks, or other properties or services of Google or any third party.
-
-4.5 You agree that you are solely responsible for (and that Google has no responsibility to you or to any third party for) any data, content, or resources that you create, transmit or display through Android and/or applications for Android, and for the consequences of your actions (including any loss or damage which Google may suffer) by doing so.
-
-4.6 You agree that you are solely responsible for (and that Google has no responsibility to you or to any third party for) any breach of your obligations under the License Agreement, any applicable third party contract or Terms of Service, or any applicable law or regulation, and for the consequences (including any loss or damage which Google or any third party may suffer) of any such breach.
-
-4.7 The Preview is in development, and your testing and feedback are an important part of the development process. By using the Preview, you acknowledge that implementation of some features are still under development and that you should not rely on the Preview having the full functionality of a stable release. You agree not to publicly distribute or ship any application using this Preview as this Preview will no longer be supported after the official Android SDK is released.
-
-5. Your Developer Credentials
-
-5.1 You agree that you are responsible for maintaining the confidentiality of any developer credentials that may be issued to you by Google or which you may choose yourself and that you will be solely responsible for all applications that are developed under your developer credentials.
-
-6. Privacy and Information
-
-6.1 In order to continually innovate and improve the Preview, Google may collect certain usage statistics from the software including but not limited to a unique identifier, associated IP address, version number of the software, and information on which tools and/or services in the Preview are being used and how they are being used. Before any of this information is collected, the Preview will notify you and seek your consent. If you withhold consent, the information will not be collected.
-
-6.2 The data collected is examined in the aggregate to improve the Preview and is maintained in accordance with Google's Privacy Policy located at http://www.google.com/policies/privacy/.
-
-7. Third Party Applications
-
-7.1 If you use the Preview to run applications developed by a third party or that access data, content or resources provided by a third party, you agree that Google is not responsible for those applications, data, content, or resources. You understand that all data, content or resources which you may access through such third party applications are the sole responsibility of the person from which they originated and that Google is not liable for any loss or damage that you may experience as a result of the use or access of any of those third party applications, data, content, or resources.
-
-7.2 You should be aware the data, content, and resources presented to you through such a third party application may be protected by intellectual property rights which are owned by the providers (or by other persons or companies on their behalf). You may not modify, rent, lease, loan, sell, distribute or create derivative works based on these data, content, or resources (either in whole or in part) unless you have been specifically given permission to do so by the relevant owners.
-
-7.3 You acknowledge that your use of such third party applications, data, content, or resources may be subject to separate terms between you and the relevant third party.
-
-8. Using Google APIs
-
-8.1 Google APIs
-
-8.1.1 If you use any API to retrieve data from Google, you acknowledge that the data may be protected by intellectual property rights which are owned by Google or those parties that provide the data (or by other persons or companies on their behalf). Your use of any such API may be subject to additional Terms of Service. You may not modify, rent, lease, loan, sell, distribute or create derivative works based on this data (either in whole or in part) unless allowed by the relevant Terms of Service.
-
-8.1.2 If you use any API to retrieve a user's data from Google, you acknowledge and agree that you shall retrieve data only with the user's explicit consent and only when, and for the limited purposes for which, the user has given you permission to do so.
-
-9. Terminating the License Agreement
-
-9.1 the License Agreement will continue to apply until terminated by either you or Google as set out below.
-
-9.2 If you want to terminate the License Agreement, you may do so by ceasing your use of the Preview and any relevant developer credentials.
-
-9.3 Google may at any time, terminate the License Agreement, with or without cause, upon notice to you.
-
-9.4 The License Agreement will automatically terminate without notice or other action upon the earlier of:
-(A) when Google ceases to provide the Preview or certain parts of the Preview to users in the country in which you are resident or from which you use the service; and
-(B) Google issues a final release version of the Android SDK.
-
-9.5 When the License Agreement is terminated, the license granted to you in the License Agreement will terminate, you will immediately cease all use of the Preview, and the provisions of paragraphs 10, 11, 12 and 14 shall survive indefinitely.
-
-10. DISCLAIMERS
-
-10.1 YOU EXPRESSLY UNDERSTAND AND AGREE THAT YOUR USE OF THE PREVIEW IS AT YOUR SOLE RISK AND THAT THE PREVIEW IS PROVIDED "AS IS" AND "AS AVAILABLE" WITHOUT WARRANTY OF ANY KIND FROM GOOGLE.
-
-10.2 YOUR USE OF THE PREVIEW AND ANY MATERIAL DOWNLOADED OR OTHERWISE OBTAINED THROUGH THE USE OF THE PREVIEW IS AT YOUR OWN DISCRETION AND RISK AND YOU ARE SOLELY RESPONSIBLE FOR ANY DAMAGE TO YOUR COMPUTER SYSTEM OR OTHER DEVICE OR LOSS OF DATA THAT RESULTS FROM SUCH USE. WITHOUT LIMITING THE FOREGOING, YOU UNDERSTAND THAT THE PREVIEW IS NOT A STABLE RELEASE AND MAY CONTAIN ERRORS, DEFECTS AND SECURITY VULNERABILITIES THAT CAN RESULT IN SIGNIFICANT DAMAGE, INCLUDING THE COMPLETE, IRRECOVERABLE LOSS OF USE OF YOUR COMPUTER SYSTEM OR OTHER DEVICE.
-
-10.3 GOOGLE FURTHER EXPRESSLY DISCLAIMS ALL WARRANTIES AND CONDITIONS OF ANY KIND, WHETHER EXPRESS OR IMPLIED, INCLUDING, BUT NOT LIMITED TO THE IMPLIED WARRANTIES AND CONDITIONS OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT.
-
-11. LIMITATION OF LIABILITY
-
-11.1 YOU EXPRESSLY UNDERSTAND AND AGREE THAT GOOGLE, ITS SUBSIDIARIES AND AFFILIATES, AND ITS LICENSORS SHALL NOT BE LIABLE TO YOU UNDER ANY THEORY OF LIABILITY FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, CONSEQUENTIAL OR EXEMPLARY DAMAGES THAT MAY BE INCURRED BY YOU, INCLUDING ANY LOSS OF DATA, WHETHER OR NOT GOOGLE OR ITS REPRESENTATIVES HAVE BEEN ADVISED OF OR SHOULD HAVE BEEN AWARE OF THE POSSIBILITY OF ANY SUCH LOSSES ARISING.
-
-12. Indemnification
-
-12.1 To the maximum extent permitted by law, you agree to defend, indemnify and hold harmless Google, its affiliates and their respective directors, officers, employees and agents from and against any and all claims, actions, suits or proceedings, as well as any and all losses, liabilities, damages, costs and expenses (including reasonable attorneys’ fees) arising out of or accruing from (a) your use of the Preview, (b) any application you develop on the Preview that infringes any Intellectual Property Rights of any person or defames any person or violates their rights of publicity or privacy, and (c) any non-compliance by you of the License Agreement.
-
-13. Changes to the License Agreement
-
-13.1 Google may make changes to the License Agreement as it distributes new versions of the Preview. When these changes are made, Google will make a new version of the License Agreement available on the website where the Preview is made available.
-
-14. General Legal Terms
-
-14.1 the License Agreement constitutes the whole legal agreement between you and Google and governs your use of the Preview (excluding any services which Google may provide to you under a separate written agreement), and completely replaces any prior agreements between you and Google in relation to the Preview.
-
-14.2 You agree that if Google does not exercise or enforce any legal right or remedy which is contained in the License Agreement (or which Google has the benefit of under any applicable law), this will not be taken to be a formal waiver of Google's rights and that those rights or remedies will still be available to Google.
-
-14.3 If any court of law, having the jurisdiction to decide on this matter, rules that any provision of the License Agreement is invalid, then that provision will be removed from the License Agreement without affecting the rest of the License Agreement. The remaining provisions of the License Agreement will continue to be valid and enforceable.
-
-14.4 You acknowledge and agree that each member of the group of companies of which Google is the parent shall be third party beneficiaries to the License Agreement and that such other companies shall be entitled to directly enforce, and rely upon, any provision of the License Agreement that confers a benefit on (or rights in favor of) them. Other than this, no other person or company shall be third party beneficiaries to the License Agreement.
-
-14.5 EXPORT RESTRICTIONS. THE PREVIEW IS SUBJECT TO UNITED STATES EXPORT LAWS AND REGULATIONS. YOU MUST COMPLY WITH ALL DOMESTIC AND INTERNATIONAL EXPORT LAWS AND REGULATIONS THAT APPLY TO THE PREVIEW. THESE LAWS INCLUDE RESTRICTIONS ON DESTINATIONS, END USERS AND END USE.
-
-14.6 The License Agreement may not be assigned or transferred by you without the prior written approval of Google, and any attempted assignment without such approval will be void. You shall not delegate your responsibilities or obligations under the License Agreement without the prior written approval of Google.
-
-14.7 The License Agreement, and your relationship with Google under the License Agreement, shall be governed by the laws of the State of California without regard to its conflict of laws provisions. You and Google agree to submit to the exclusive jurisdiction of the courts located within the county of Santa Clara, California to resolve any legal matter arising from the License Agreement. Notwithstanding this, you agree that Google shall still be allowed to apply for injunctive remedies (or an equivalent type of urgent legal relief) in any jurisdiction.
-    </div><!-- sdk terms -->
-
-
-
-    <div id="sdk-terms-form">
-      <p>
-        <input id="agree" type="checkbox" name="agree" value="1" onclick="onAgreeChecked()" />
-        <label id="agreeLabel" for="agree">I have read and agree with the above terms and conditions</label>
-      </p>
-      <p><a href="" class="button disabled" id="downloadForRealz" onclick="return onDownloadForRealz(this);"></a></p>
-    </div>
-
-
-  </div><!-- end TOS -->
-
-
-
-
-
-
-
-      <div class="landing-section" id="landing-wrapper" style="padding:55px 10px 0">
-          <div class="landing-section-header" style="margin:0">
-            <div class="landing-h1">Android L Developer Preview</div>
-            <div class="landing-subhead" style="padding-bottom:40px">
-              Final APIs now available!
-            </div>
-          </div>
-        <div class="wrap" style="padding:20px; position:relative">
-
-    <img src="/images/home/l-hero_2x.png"
-          srcset="/images/home/l-hero.png 1x, /images/home/l-hero_2x.png 2x"
-          style=" margin:-5px -30px 0 0;float:right" alt="" width="510">
-
-  <a href="/about/versions/android-5.0.html" class="landing-button landing-primary"
-  style="position:absolute;z-index:100;right:215px;top:375px">Android 5.0 API Overview</a>
-
-      <div style="width:440px">
-<p>Android 5.0 (Lollipop) is now out of preview and available to users.</p>
-
-<p>If you previously developed apps with the L Developer Preview, be aware that various APIs and
-behaviors have changed, so you should update your SDK now to test your apps and take advantage of
-new features in Android 5.0.</p>
-
-
-        <p>To get the latest Android 5.0 SDK:</p>
-        <ol>
-          <li>Start the <a href="/tools/help/sdk-manager.html">Android SDK Manager</a>.</li>
-          <li>In the <b>Tools</b> section, select the latest <b>SDK Tools</b>,
-            <b>SDK Platform-tools</b>, and <b>SDK Build-tools</b>.</li>
-            <!-- Android L not yet showing up in Android SDK Manager...  -->
-          <li>Select everything under the <b>Android 5.0</b> section, then
-            click <b>Install packages...</b></li>
-          <li>Accept the licensing agreement for the packages, then click
-            <b>Install</b>.</li>
-        <li>If you previously installed the Android L Preview SDK, select all those
-          packages in the SDK Manager and click <strong>Delete packages</strong>.
-        </ol>
-        <p>Now you're ready to develop and test on Android 5.0 with your normal workflow
-          and begin publishing app updates to Google Play.
-      </div>
-
-    <h2 id="Start" class="norule" style="margin:60px 0 0 0">Get Started on Android 5.0</h2>
-        </div> <!-- end .wrap -->
-
-
-
-    <div class="wrap" style="background-color:#fff;padding:20px;position:relative">
-
-      <div id="qv-wrapper">
-      <div id="qv">
-      <h2>More about Android 5.0</h2>
-        <ul>
-          <li><a href="http://android-developers.blogspot.com/">Android 5.0 announcement</a></li>
-          <li><a href="/about/versions/android-5.0.html">Android 5.0 API Overview</a></li>
-          <li><a href="/sdk/api_diff/21/changes.html">Android 5.0 API Diff Report</a></li>
-          <li><a href="/samples/new/index.html">Android 5.0 API Samples</a></li>
-        </ul>
-      </div>
-      </div>
-
-      <p>Now that Android 5.0 APIs are final:</p>
-      <ul>
-        <li>The API level for Android 5.0 is 21, so be sure to update your
-        app's manifest file to set <a href="/guide/topics/manifest/uses-sdk-element.html#target"
-        ><code>targetSdkVersion</code></a> to
-        <code>"21"</code> when you begin testing:
-        <pre>&lt;uses-sdk android:targetSdkVersion="21" ... /></pre>
-        </li>
-        <li>Google Play now accepts APKs with <a
-          href="/guide/topics/manifest/uses-sdk-element.html#min"><code>minSdkVersion</code></a> or
-          <a href="/guide/topics/manifest/uses-sdk-element.html#target"
-                  ><code>targetSdkVersion</code></a> set
-          to <code>"21"</code>, so you can upload your updated apps today.</li>
-      </ul>
-
-      <p>If you previously flashed your Nexus 5 or Nexus 7 with a preview system image, you should
-        now update your device to the final factory system image.
-        Download the appropriate image from
-        <a href="http://developers.google.com/android/nexus/images">Factory Images for Nexus
-          Devices</a> and follow the flashing instructions on that page.</p>
-
-        </div> <!-- end .wrap -->
-
-
-
-
-
-
-
-
-        <div class="wrap" style="padding:20px; position:relative">
-    <h2 id="Material" class="norule" style="margin:40px 0 0 0">Design with Material</h2>
-    </div>
-
-        <div class="wrap" style="background-color:#fff;padding:20px;position:relative">
-      <img src="images/material-layers.png" width="240"
-          style="position:absolute;right:20px;top:-50px">
-
-      <div id="qv-wrapper" style="margin-top:120px">
-      <div id="qv">
-
-      <h2>More about Material Design</h2>
-        <ul>
-          <li><a href="http://www.google.com/design/spec/material-design/introduction.html">Material
-            Design Spec</a></li>
-          <li><a href="/design/material/index.html">Android Material Design</a></li>
-          <li><a href="/training/material/index.html">Creating Apps with Material Design</a>
-        </ul>
-      </div>
-      </div>
-
-
-<p>Material design is a complete design philosophy for visual, motion, and interaction design
-across platforms and devices. The <a href=
-"http://www.google.com/design/spec/material-design/introduction.html">material design specification
-(preview)</a> provides all the details for designers.</p>
-
-
-      <p>To get started with Material design in your Android app, update
-        your <a href="/guide/topics/manifest/uses-sdk-element.html#target"
-        ><code>targetSdkVersion</code></a> to <code>"21"</code> and apply the new
-        <a href="/reference/android/R.style.html#Theme_Material"
-        ><code>Material</code></a> theme. For example, when creating
-        a <a href="/guide/topics/ui/themes.html">custom theme</a>
-        for your app, open your project's <code>res/values/styles.xml</code> file
-        and extend the <a href="/reference/android/R.style.html#Theme_Material"
-        ><code>Material</code></a> theme:</p>
-<pre>
-&lt;resources>
-    &lt;style name="AppTheme" parent="android:Theme.Material">
-        &lt;!-- Customize the Material elements here -->
-    &lt;/style>
-&lt;/resources>
-</pre>
-<p>Then apply your custom theme to your application in the manifest file:</p>
-<pre>
-&lt;application android:theme="&#64;style/AppTheme">
-</pre>
-<p>Material design is more than just the UI theme, though. It's also about the way the app
-  behaves&mdash;how elements move and transform when the user interacts with them. So Android 5.0
-  and the <a href="/tools/support-library/features.html#v7">v7 support library</a> provide new
-  widgets and animation APIs that allow you to
-  build interaction patterns described in the
-  <a href="http://www.google.com/design/spec/material-design/introduction.html">Material design
-    specification</a>.</p>
-
-<p>All the Material design elements and interaction patterns provided by the UI styles and widgets
-are flexible, so you can adopt only what's appropriate for your app and retain a unique identity
-and experience for your product.</p>
-
-<p>And Material design on Android isn't just for Android 5.0. The
-  <a href="/tools/support-library/features.html#v7">v7 support library</a> has been significantly
-  updated in revision 21 to make many of the Material design elements available when
-  running on older versions of the platform.</p>
-
-<p>For many more details about how to implement the Material look and feel,
-    see <a href="/training/material/index.html">Creating Apps with Material
-    Design</a>.</p>
-
-
-    </div>
-
-
-
-
-
-
-
-
-
-
-
-    <div class="wrap" style="padding:20px; position:relative">
-    <h2 id="TV" class="norule" style="margin:40px 0 0 0">Build for Android TV</h2>
-    </div>
-
-        <div class="wrap" style="background-color:#fff;padding:20px;position:relative">
-      <img src="/tv/images/components.png" width="240"
-          style="position:absolute;right:20px;top:-50px">
-
-    <div id="qv-wrapper" style="margin-top:120px">
-    <div id="qv">
-
-    <h2>More about Android TV</h2>
-      <ul>
-        <li><a href="/design/tv/index.html">Android TV Design</a></li>
-        <li><a href="/training/tv/start/index.html">Building Apps for Android TV</a></li>
-        <li><a href="/training/tv/games/index.html">Building TV Games</a></li>
-        <li><a href="/training/tv/playback/index.html">Building TV Playback Apps</a></li>
-        <li><a href="/distribute/essentials/quality/tv.html">TV App Quality</a></li>
-      </ul>
-    </div>
-    </div>
-
-<p>Android 5.0 provides a new platform for users to experience your app on a big screen. The
-Android TV experience is centered around a simplified home screen that allows users to discover
-your app's content with personalized recommendations and voice search, or select your app to launch
-into your fullscreen experience.</p>
-
-
-<p>Making your app available on Android TV does not require that you build an entirely new app.
-Android TV is simply another form factor for the Android platform, so you can deliver the same APK
-that you provide for phones and tablets to TVs through Google Play. However, to make your app
-available on Android TV, you'll need to make some optimizations such as adding layouts
-for the big screen and adding support for remote control input. For more information about design
-guidelines, see <a href="/distribute/essentials/quality/tv.html">TV App Quality</a>.</p>
-
-<p class="note"><strong>Note:</strong> Google Play for Android TV will officially
-open for apps on November 3.</p>
-
-<p>Android TV is also great new opportunity for Android games. If you'd like to make your games
-available on Android TV, be sure to optimize the user experience for the big screen by following
-the recommendations in <a href="/training/tv/games/index.html">Building TV Games</a>.</p>
-
-
-      <p>To get started on Android TV, you need:</p>
-      <ul>
-        <li>The Android 5.0 SDK packages from the
-          <a href="/tools/help/sdk-manager.html">Android SDK Manager</a>,
-          including the <strong>Android TV System Image</strong> so you can create an
-          Android TV emulator.</li>
-        <li>An activity that's launchable from the Android TV home screen. This requires that you
-        add the <a href="/reference/android/content/Intent.html#CATEGORY_LEANBACK_LAUNCHER"
-        ><code>LEANBACK_LAUNCHER</code></a> category to one of your activities. For example:
-<pre>
-&lt;activity ... >
-    &lt;intent-filter>
-        &lt;action android:name="android.intent.action.MAIN" />
-        &lt;category android:name="android.intent.category.LEANBACK_LAUNCHER" />
-    &lt;/intent-filter>
-&lt;/activity>
-</pre>
-        </li>
-
-        <li>For a set of default styles that optimize your UI for the TV's
-          <em>leanback user experience</em>,
-          you should also apply the <a
-          href="/reference/android/support/v17/leanback/R.style.html#Theme_Leanback"
-        ><code>Leanback</code></a> theme to your activity:
-<pre>
-&lt;activity android:theme="@style/Theme.Leanback" ... >
-</pre>
-      </li>
-
-      </ul>
-      <p>You should also take advantage of the <a
-        href="/tools/support-library/features.html#v17-leanback">v17 leanback library</a>, which
-        provides the <a href="/reference/android/support/v17/leanback/R.style.html#Theme_Leanback"
-        ><code>Leanback</code></a> theme shown above, plus several widgets designed to
-        make your UI beautiful and easy to navigate on the big screen, such as a widget that creates
-        a set of large horizontal card views.</p>
-
-      <p>For more information about setting up a project for your TV app, building
-        TV layouts, and handling controller input,
-        see <a href="/training/tv/start/index.html">Building
-        TV Apps</a>.</p>
-    </div>
-
-
-
-
-
-
-
-
-      </div> <!-- end .landing-section -->
-
-
-
-
-
-
-
-
-    <!-- spacer -->
-    <div class="wrap" style="padding:20px; position:relative">
-      <p>&nbsp;</p>
-    </div>
-
-
-
-    <div id="footer" class="wrap" style="width:940px;position:relative;">
-      <div id="copyright">
-        Except as noted, this content is
-        licensed under <a href="http://creativecommons.org/licenses/by/2.5/">
-        Creative Commons Attribution 2.5</a>. For details and
-        restrictions, see the <a href="https://developer.android.com/license.html">Content
-        License</a>.
-      </div>
-    </div>
-  </div> <!-- end landing-body-content -->
-
-    </div>
-
-      <div class="content-footer wrap" itemscope=""
-        itemtype="http://schema.org/SiteNavigationElement">
-
-        <div class="paging-links layout-content-col col-10">
-
-        </div>
-
-      </div>
-
-
-
-
-  </div> <!-- end jd-content -->
-
-<div id="footer" class="wrap" style="width:940px">
-
-
-  <div id="copyright">
-
-  Except as noted, this content is
-  licensed under <a href="http://creativecommons.org/licenses/by/2.5/">
-  Creative Commons Attribution 2.5</a>. For details and
-  restrictions, see the <a href="https://developer.android.com/license.html">Content
-  License</a>.
-  </div>
-
-
-</div> <!-- end footer -->
-</div><!-- end doc-content -->
-
-</div> <!-- end body-content -->
-
-
-<script>
-  var urlRoot = "http://storage.googleapis.com/androiddevelopers/finalpreview/";
-  function onDownload(link) {
-
-    $("#downloadForRealz").html("Download " + $(link).text());
-    $("#downloadForRealz").attr('href', urlRoot + $(link).text());
-
-    $("#tos").show();
-    $("#landing-wrapper").hide();
-
-    return true;
-  }
-
-
-  function onAgreeChecked() {
-    /* verify that the TOS is agreed */
-    if ($("input#agree").is(":checked")) {
-      /* reveal the download button */
-      $("a#downloadForRealz").removeClass('disabled');
-    } else {
-      $("a#downloadForRealz").addClass('disabled');
-    }
-  }
-
-  function onDownloadForRealz(link) {
-    if ($("input#agree").is(':checked')) {
-      $("#tos").fadeOut('fast');
-      $("#landing-wrapper").fadeIn('fast');
-      ga('send', 'event', 'L Preview', 'System Image', $("#downloadForRealz").html());
-      location.hash = "";
-      // reset the checkbox for future downloads
-      $("#agree").trigger('click');
-      $("a#downloadForRealz").addClass('disabled');
-      return true;
-    } else {
-      $("label#agreeLabel").parent().stop().animate({color: "#258AAF"}, 200,
-        function() {$("label#agreeLabel").parent().stop().animate({color: "#222"}, 200)}
-      );
-      return false;
-    }
-  }
-
-</script>
-
-
-</body>
-</html>
\ No newline at end of file
diff --git a/docs/html/preview/index.jd b/docs/html/preview/index.jd
new file mode 100644
index 0000000..da7b5ea
--- /dev/null
+++ b/docs/html/preview/index.jd
@@ -0,0 +1,51 @@
+page.title=Android M Developer Preview
+page.tags="preview", 
+meta.tags="preview, M preview"
+fullpage=true
+section.landing=true
+header.hide=1
+footer.hide=1
+@jd:body
+
+<section class="dac-expand dac-hero dac-light" style="background-repeat:no-repeat">
+  <div class="wrap">
+    <div class="cols dac-hero-content">
+      <div class="col-9of16 col-push-7of16 dac-hero-figure">
+        <img class="dac-hero-image" src="{@docRoot}images/home/devices-hero_620px_2x.png">
+      </div>
+      <div class="col-7of16 col-pull-9of16">
+        <h1 class="dac-hero-title">Android M Developer Preview</h1>
+        <p class="dac-hero-description">
+          Get ready for the next version of Android. Test your apps on Nexus 5, 6, 9, and
+          Player. Explore what's new &mdash; a runtime permissions model, power saving Volta features, and new assist technology.
+        </p>
+
+        <a class="dac-hero-cta" href="{@docRoot}preview/overview.html">
+          <span class="dac-sprite dac-auto-chevron"></span>
+          Get Started!
+        </a><br>
+      </div>
+    </div>
+
+    <div class="dac-section dac-small">
+      <div class="resource-widget resource-flow-layout col-16"
+           data-query="collection:preview/landing/resources"
+           data-cardSizes="6x2"
+           data-maxResults="3"></div>
+    </div>
+  </div>
+</section>
+
+<div class="wrap dac-offset-parent">
+  <a class="dac-fab dac-scroll-button" data-scroll-button href="#latest">
+    <i class="dac-sprite dac-arrow-down-gray"></i>
+  </a>
+</div>
+
+<section class="dac-section dac-gray dac-small dac-invert" id="latest"><div class="wrap">
+  <h2 class="norule">Latest</h2>
+  <div class="resource-widget resource-flow-layout col-16"
+       data-query="type:blog+tag:featured+tag:preview"
+       data-cardSizes="6x6"
+       data-maxResults="3"></div>
+</div></section>
diff --git a/docs/html/preview/license.html b/docs/html/preview/license.jd
similarity index 80%
rename from docs/html/preview/license.html
rename to docs/html/preview/license.jd
index deb16aa..5ff52ba 100644
--- a/docs/html/preview/license.html
+++ b/docs/html/preview/license.jd
@@ -1,105 +1,16 @@
-<!DOCTYPE html>
+page.title=License Agreement
 
-<html>
-<head>
+@jd:body
 
-
-<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
-<meta name="viewport" content="width=970" />
-
-<meta name="Description" content="To get started with the Android SDK Preview, you must agree to the following terms and conditions. As described below, please note that this is a preview version of the Android SDK, subject to change, that you use at your own risk.">
-<link rel="shortcut icon" type="image/x-icon" href="/favicon.ico" />
-<title>License Agreement | Android Developers</title>
-
-<!-- STYLESHEETS -->
-<link rel="stylesheet"
-href="//fonts.googleapis.com/css?family=Roboto+Condensed">
-<link rel="stylesheet" href="//fonts.googleapis.com/css?family=Roboto:light,regular,medium,thin,italic,mediumitalic,bold"
-  title="roboto">
-<link href="/assets/css/default.css" rel="stylesheet" type="text/css">
-
-
-
-<!-- JAVASCRIPT -->
-<script src="//www.google.com/jsapi" type="text/javascript"></script>
-<script src="/assets/js/android_3p-bundle.js" type="text/javascript"></script>
-<script type="text/javascript">
-  var toRoot = "/";
-  var metaTags = [];
-  var devsite = false;
-</script>
-<script src="/assets/js/docs.js" type="text/javascript"></script>
-
-<script>
-  (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
-  (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
-  m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
-  })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
-
-  ga('create', 'UA-5831155-1', 'android.com');
-  ga('create', 'UA-49880327-2', 'android.com', {'name': 'universal'});  // New tracker);
-  ga('send', 'pageview');
-  ga('universal.send', 'pageview'); // Send page view for new tracker.
-</script>
-
-</head>
-
-
-<body class="gc-documentation" itemscope="" itemtype="http://schema.org/Article">
-
-
-<a name="top"></a>
-<div id="body-content">
-<div class="fullpage">
-<div id="jd-content">
-  <div class="jd-descr" itemprop="articleBody">
-<style>
-body,html, #qv {background-color:#e9e9e9}
-
-#qv * { font-weight:bold;}
-
-.fullpage>#footer,
-#jd-content>.content-footer.wrap {
-  display:none;
-}
-
-.content-footer {
-  display: none;
-}
-</style>
-
- <div style="border-bottom: 1px solid #a5c43a; position: absolute; left: 0; right: 0; top: 0;">
-      <div class="wrap" style="position: relative; height: 45px; padding: 0 20px;">
-        <a href="/index.html" style="position:absolute;top:8px">
-          <img src="/assets/images/dac_logo.png" srcset="/assets/images/dac_logo@2x.png 2x" width="123" height="25" alt="Android Developers home page">
-        </a>
-      </div>
-    </div>
-   
-    <div class="landing-rest-of-page">
-            <div class="landing-section" style="padding:55px 10px 0">
-
-<div class="wrap">
-
-<div class="col-16" id="doc-col" >
-
-        <h1 itemprop="name" >L Developer Preview License Agreement</h1>
-
-<div class="jd-descr" itemprop="articleBody">
-    <p>
-If you are using the Android SDK
-Preview, you must agree to the following terms
-and conditions. As described below, please note that the preview version of the
-Android SDK is subject to change, and that you use it at your own risk.  The
-Android SDK Preview is not a stable release, and may contain errors and defects
-that can result in serious damage to your computer systems, devices and data.
+<p>
+To get started with the Android SDK Preview, you must agree to the following terms and conditions. 
+As described below, please note that this is a preview version of the Android SDK, subject to change, that you use at your own risk.  The Android SDK Preview is not a stable release, and may contain errors and defects that can result in serious damage to your computer systems, devices and data.
 </p>
 
 <p>
 This is the Android SDK Preview License Agreement (the “License Agreement”).
 </p>
-
-<div class="sdk-terms" style="height:auto;border:0;padding:0;width:940px">
+<div class="sdk-terms" style="height:auto;border:0;padding:0;width:700px">
 1. Introduction
 
 1.1 The Android SDK Preview (referred to in the License Agreement as the “Preview” and specifically including the Android system files, packaged APIs, and Preview library files, if and when they are made available) is licensed to you subject to the terms of the License Agreement. The License Agreement forms a legally binding contract between you and Google in relation to your use of the Preview.
@@ -229,46 +140,4 @@
 14.7 The License Agreement, and your relationship with Google under the License Agreement, shall be governed by the laws of the State of California without regard to its conflict of laws provisions. You and Google agree to submit to the exclusive jurisdiction of the courts located within the county of Santa Clara, California to resolve any legal matter arising from the License Agreement. Notwithstanding this, you agree that Google shall still be allowed to apply for injunctive remedies (or an equivalent type of urgent legal relief) in any jurisdiction.
 
 
-</div>
-    </div>
-  </div>
-
-</div>
-  </div> <!-- end landing-body-content -->
-
-    </div>
-
-      <div class="content-footer wrap" itemscope=""
-        itemtype="http://schema.org/SiteNavigationElement">
-
-        <div class="paging-links layout-content-col col-10">
-
-        </div>
-
-      </div>
-
-
-
-
-  </div> <!-- end jd-content -->
-
-<div id="footer" class="wrap" style="width:940px">
-
-
-  <div id="copyright">
-
-  Except as noted, this content is
-  licensed under <a href="http://creativecommons.org/licenses/by/2.5/">
-  Creative Commons Attribution 2.5</a>. For details and
-  restrictions, see the <a href="https://developer.android.com/license.html">Content
-  License</a>.
-  </div>
-
-
-</div> <!-- end footer -->
-</div><!-- end doc-content -->
-
-</div> <!-- end body-content -->
-
-</body>
-</html>
+</div>
\ No newline at end of file
diff --git a/docs/html/preview/overview.jd b/docs/html/preview/overview.jd
new file mode 100644
index 0000000..633fd25
--- /dev/null
+++ b/docs/html/preview/overview.jd
@@ -0,0 +1,63 @@
+page.title=Preview Program Overview
+page.image=images/cards/card-preview_16-9_2x.png
+
+@jd:body
+
+<p>
+  The Android M platform is still under development, but we’re offering developers an early look
+  through the Android M Developer Preview program. This program is an opportunity for you to test
+  the compatibility of your apps with the next platform release, try out early versions of new API
+  features, and provide feedback to the Android team. Developers can try out the M Preview system
+  on with the Android SDK emulator or on Nexus 5, Nexus 6, Nexus 9, and Nexus Player devices. The
+  program includes update releases during course of the program to allow you to follow the progress
+  of feature development and fixes, leading up to the official release of the platform.
+</p>
+
+<img src="{@docRoot}preview/images/m-preview-timeline.png"
+  alt="Preview program timeline" id="figure1" style="margin-top: 15px;">
+<p class="img-caption">
+  <b>Figure 1.</b> Timeline for the M Developer Preview program.
+</p>
+
+<p>
+  We strongly encourage you to provide feedback for the M Preview releases through our <a href=
+  "https://code.google.com/p/android-developer-preview/">issue tracker</a>. Issues reported early
+  in the program have a better chance of being addressed before the official release, so reports
+  provided by June 30, 2015 receive priority processing by the Android team.
+</p>
+
+<p>
+  To get started testing your app:
+</p>
+
+<ul>
+  <li>Review the <a href="{@docRoot}preview/api-overview.html"> API Overview</a> and
+    <a href="{@docRoot}preview/api-changes.html">Behavior Changes</a> to
+    get an idea of what's new and how it affects your app.
+  </li>
+
+  <li>Setup for testing and development by following the instructions for
+    <a href="{@docRoot}preview/setup-sdk.html">Setting up the Preview SDK</a>
+    and configuring test devices.
+  </li>
+
+  <li>You can <a href="{@docRoot}preview/download.html">download</a> the latest M Developer
+    Preview system image for compatible Nexus devices and install it for testing. Once you have
+    flashed a development device, it is upgraded automatically with the next preview release
+    through over-the-air (OTA) updates.
+  </li>
+
+  <li>Review the M Preview <a href="{@docRoot}preview/reference.html">API Reference</a> and
+    <a href="{@docRoot}preview/samples.html">samples</a> to
+    gain more insight into new API features and how to use them in your app.
+  </li>
+
+  <li>Join the M Preview <a href="http://g.co/dev/AndroidMDevPreview">Google+ developer
+    community</a> to get the latest developer updates and connect with other
+    developers working with the preview.
+  </li>
+</ul>
+
+<p>
+  Thanks in advance for your participation in the developer preview program!
+</p>
diff --git a/docs/html/preview/preview_toc.cs b/docs/html/preview/preview_toc.cs
new file mode 100644
index 0000000..5b1f022
--- /dev/null
+++ b/docs/html/preview/preview_toc.cs
@@ -0,0 +1,61 @@
+<ul id="nav">
+
+  <li class="nav-section">
+    <div class="nav-section-header empty"><a href="<?cs var:toroot ?>preview/overview.html">
+      Program Overview</a></div>
+  </li>
+
+  <li class="nav-section">
+    <div class="nav-section-header empty"><a href="<?cs var:toroot ?>preview/download.html">
+      Download</a></div>
+  </li>
+
+  <li class="nav-section">
+    <div class="nav-section-header empty"><a href="<?cs var:toroot ?>preview/setup-sdk.html">
+      Set up the SDK</a></div>
+  </li>
+
+  <li class="nav-section">
+    <div class="nav-section-header empty"><a href="<?cs var:toroot ?>preview/api-overview.html">
+      API Overview</a></div>
+  </li>
+
+  <li class="nav-section">
+    <div class="nav-section-header empty"><a href="<?cs var:toroot ?>preview/api-changes.html">
+      Behavior Changes</a></div>
+  </li>
+
+  <li class="nav-section">
+    <div class="nav-section-header empty">
+    <a href="<?cs var:toroot ?>preview/features/runtime-permissions.html">
+      Runtime Permissions</a></div>
+  </li>
+
+  <li class="nav-section">
+    <div class="nav-section-header empty">
+    <a href="<?cs var:toroot ?>preview/backup/index.html">
+      Automatic Backups</a></div>
+  </li>
+
+  <li class="nav-section">
+    <div class="nav-section-header empty">
+    <a href="<?cs var:toroot ?>preview/data-binding/guide.html">
+      Data Binding</a></div>
+  </li>
+
+  <li class="nav-section">
+    <div class="nav-section-header empty"><a href="<?cs var:toroot ?>preview/samples.html">
+      Samples</a></div>
+  </li>
+
+  <li class="nav-section">
+    <div class="nav-section-header empty"><a href="<?cs var:toroot ?>preview/support.html">
+      Support</a></div>
+  </li>
+
+  <li class="nav-section">
+    <div class="nav-section-header empty"><a href="<?cs var:toroot ?>preview/license.html">
+      License Agreement</a></div>
+  </li>
+
+</ul>
diff --git a/docs/html/preview/samples.jd b/docs/html/preview/samples.jd
new file mode 100644
index 0000000..b3836f8
--- /dev/null
+++ b/docs/html/preview/samples.jd
@@ -0,0 +1,84 @@
+page.title=Samples
+
+@jd:body
+
+<p>
+  The following code samples are provided for the M Developer Preview. You can download them in the
+  Android SDK Manager under the <b>SDK Samples</b> component for the M Developer Preview.
+</p>
+
+<p class="note">
+  <strong>Note:</strong> These downloadable projects are designed
+   for use with Gradle and Android Studio.
+</p>
+
+
+<h3 id="RuntimePermissions">Runtime Permissions</h3>
+
+<p>
+ Android M changes the way system permissions work. Users are asked to approve permission
+ requests at runtime instead of during installation. This sample shows how to request these
+ permissions.
+</p>
+
+<p><a href="https://github.com/googlesamples/android-RuntimePermissions">Get it on GitHub</a></p>
+
+<h3 id="RuntimePermissionsCompat">Runtime Permissions Compat</h3>
+
+<p>
+ To support devices on previous versions of Android, this sample demonstrates how to work with the
+ new permissions system introduced in Android M by using a support library.
+</p>
+
+<p><a href="https://github.com/googlesamples/android-RuntimePermissionsCompat">Get it on
+GitHub</a></p>
+
+<h3 id="VoiceCamera">Voice Camera</h3>
+
+<p>
+  This sample demonstrates how to implement the "OK Google, take a selfie" voice command and confirm
+  the user intent with the <code>VoiceInteraction</code> API.
+</p>
+
+<p><a href="https://github.com/googlesamples/android-VoiceCamera">Get it on GitHub</a></p>
+
+
+<h3 id="DeepLinkSharing">Deep Link Sharing</h3>
+
+<p>
+  This sample shows how to handle content shared via deep links in your app. It demonstrates how to
+  implement the <code>ChooserTargetService</code>.
+</p>
+
+<p><a href="https://github.com/googlesamples/android-DeepLinkSharing">Get it on GitHub</a></p>
+
+<h3 id="NotificationBuilder">Notification Builder</h3>
+
+<p>
+  This sample demonstrates the improved
+  <a href="{@docRoot}reference/android/app/Notification.html"><code>Notification</code></a>
+  memory footprint and simplified creation of notifications with custom views.
+</p>
+
+<p><a href="https://github.com/googlesamples/android-NotificationBuilder">Get it on GitHub</a></p>
+
+<h3 id="ActiveNotification">Active Notification</h3>
+
+<p>
+  This sample demonstrates how the
+  <a href="{@docRoot}reference/android/app/NotificationManager.html"><code>NotificationManager</code></a>
+  can tell you how many notifications your app is currently showing.
+</p>
+
+<p><a href="https://github.com/googlesamples/android-ActiveNotification">Get it on GitHub</a></p>
+
+<h3 id="VoiceSynthesizer">Voice Synthesizer</h3>
+
+<p>
+  This sample demonstrates how to use the <code>NativeAudio</code> APIs to demonstrate low-latency
+  audio processing.
+</p>
+
+<p><a href="https://github.com/googlesamples/android-VoiceSynthesizer">Get it on GitHub</a></p>
+
+
diff --git a/docs/html/preview/setup-sdk.jd b/docs/html/preview/setup-sdk.jd
new file mode 100644
index 0000000..b31b104
--- /dev/null
+++ b/docs/html/preview/setup-sdk.jd
@@ -0,0 +1,129 @@
+page.title=Set Up the Preview SDK
+page.image=images/cards/card-set-up_16-9_2x.png
+
+@jd:body
+
+
+<div id="qv-wrapper">
+  <div id="qv">
+    <h2>In this document</h2>
+      <ol>
+        <li><a href="#get-sdk">Get the Preview SDK</a></li>
+        <li><a href="#create-update">Create or Update a Project</a></li>
+        <li><a href="#setup-test">Set Up for Testing</a></li>
+      </ol>
+  </div>
+</div>
+
+<p>The Preview SDK is available from the Android SDK Manager.
+This document assumes that you are familiar with Android app development, such
+as using the Android SDK Manager and creating projects. If you are new to
+Android, see <a href="{@docRoot}training/basics/firstapp/index.html">Building Your First
+App</a> training lesson first.</a></p>
+
+<h2 id="get-sdk">Get the Preview SDK</h2>
+
+<p>To add the Android Preview SDK components to your development environment:</p>
+
+<ol>
+  <li>Start the <a href="{@docRoot}tools/help/sdk-manager.html">Android SDK Manager</a>.</li>
+  <li>In the <strong>Tools</strong> section, select the latest Android <strong>SDK Tools</strong>,
+    <strong>Platform-tools</strong>, and <strong>Build-tools</strong>.</li>
+  <li>Select everything under the <strong>Android M Developer Preview</strong> section and
+    click <strong>Install packages...</strong></li>
+  <li>Accept the Licensing Agreement for all of the packages and click
+    <strong>Install</strong>.</li>
+</ol>
+
+<p>After completing these steps, the preview components are available in your development
+  environment. </p>
+
+
+<h2 id="create-update">Create or Update a Project</h2>
+
+<p>
+  In order to use the preview APIs, you must create or update a development project to use
+  the preview components.
+</p>
+
+
+<h3 id="create">Create a new project</h3>
+
+<p>
+  We recommend using Android Studio for create a project with the preview. Follow the steps
+  described in <a href="{@docRoot}sdk/installing/create-project.html">Creating a Project</a>
+  until you arrive at the <em>Form Factors</em> screen in the project wizard. Then perform
+  the following steps to create a project configured for the preview.
+</p>
+
+<ul>
+  <li>Check <strong>Phone and Tablet</strong>.</li>
+  <li>Select <strong>API 22+: Android M (Preview)</strong> in <strong>Minimum SDK</strong>.</li>
+</ul>
+
+
+<h3 id="update">Update an existing project</h3>
+
+<p>
+  For existing projects, you must modify the project configuration to enable the preview APIs. In
+  your the development environment, open the <code>build.gradle</code> file for your module and
+  set these values as follows:
+</p>
+
+<ul>
+  <li><code>compileSdkVersion</code> is set to <code>'android-MNC'</code></li>
+  <li><code>minSdkVersion</code> is set to <code>'android-MNC'</code></li>
+  <li><code>targetSdkVersion</code> is set to <code>'android-MNC'</code></li>
+</ul>
+
+
+<h2 id="setup-test">Set Up for Testing</h2>
+
+<p>
+  Testing app with the preview requires that you have a device or virtual device configured with
+  the preview version of the platform. If you have a compatible device, you can install the preview
+  platform for testing. Otherwise, you can configure a virtual device for testing.
+</p>
+
+<h3 id="setup-device">Set up a Physical Device</h3>
+
+<p>
+  If you have a Nexus 5, Nexus 6, Nexus 9, or Nexus Player, you can install a preview
+  system image on these devices for testing your app.
+  You can set up virtual device with the preview version of the platform from within Android Studio
+  using the Android Virtual Device Manager tool.
+</p>
+
+<p class="caution">
+  <strong>Important:</strong> Installing a preview image on a device <em>removes all data from
+  it</em>, so you should backup any data before installing a preview image.
+</p>
+
+<h3 id="setupAVD">Set up a Virtual Device</h3>
+
+<p>
+  You can set up virtual device with the preview version of the platform from within Android Studio
+  using the Android Virtual Device Manager tool.
+</p>
+
+<p>To create an AVD with the AVD Manager:</p>
+
+<ol>
+  <li>Install the M Preview SDK in your development environment, as described
+      in <a href="{@docRoot}preview/setup-sdk.html">Setting Up the Preview
+      SDK.</a></li>
+  <li>Follow the steps in
+      <a href="{@docRoot}tools/devices/managing-avds.html">Managing AVDs with AVD
+      Manager</a>. Use the following settings:
+    <ul>
+      <li><strong>Device:</strong> Nexus 5, Nexus 6, Nexus 9, or Nexus Player</li>
+      <li><strong>Target:</strong>
+       Android M (Preview) - API Level M</li>
+    </ul>
+  </li>
+</ol>
+
+<p>
+  For more information about creating virtual devices for testing, see <a href=
+  "{@docRoot}tools/devices/index.html">Managing Virtual Devices</a>.
+</p>
diff --git a/docs/html/preview/support.jd b/docs/html/preview/support.jd
new file mode 100644
index 0000000..3ed1487
--- /dev/null
+++ b/docs/html/preview/support.jd
@@ -0,0 +1,68 @@
+page.title=Support
+page.image=images/cards/card-support_16-9_2x.png
+
+@jd:body
+
+<p>
+  If you've encountered bugs or have feedback about the M Developer Preview,
+  <a href="https://code.google.com/p/android-developer-preview/">create an issue</a>
+  on our issue tracker.
+</p>
+
+<p>
+  For more support, join the
+  <a href="https://plus.google.com/communities/101985907812750684586">M Developer
+  Preview Google+ community</a> to discuss your development experiences.
+</p>
+
+<h2 id="release-notes">Release Notes</h2>
+
+<!--
+<div class="toggle-content opened">
+  <p><a href="#" onclick="return toggleContent(this)">
+    <img src="{@docRoot}assets/images/triangle-opened.png" class="toggle-content-img"
+      alt=""/>M Developer Preview, Revision 2</a> <em>(Month 2015)</em>
+  </p>
+
+  <div class="toggle-content-toggleme">
+
+    <dl>
+
+    <dt>Fix Category 1</dt>
+    <dd>
+      <ul>
+        <li>Fixed issue X.</li>
+        <li>Fixed issue Y.</li>
+        <li>Fixed issue Z.</li>
+      </ul>
+    </dd>
+
+    <dt>Fix Category 2</dt>
+    <dd>
+      <ul>
+        <li>Fixed issue X.</li>
+        <li>Fixed issue Y.</li>
+        <li>Fixed issue Z.</li>
+      </ul>
+    </dd>
+
+    </dl>
+  </div>
+</div>
+-->
+
+<div class="toggle-content opened">
+  <p><a href="#" onclick="return toggleContent(this)">
+    <img src="{@docRoot}assets/images/triangle-opened.png" class="toggle-content-img"
+      alt=""/>M Developer Preview, Revision 1</a> <em>(May 2015)</em>
+  </p>
+
+  <div class="toggle-content-toggleme">
+
+    <dl>
+    <dt>Initial release.</dt>
+    </dl>
+  </div>
+</div>
+
+
diff --git a/docs/html/samples/new/index.jd b/docs/html/samples/new/index.jd
index 279b910..80765c7 100644
--- a/docs/html/samples/new/index.jd
+++ b/docs/html/samples/new/index.jd
@@ -1,4 +1,5 @@
 page.title=What's New
+page.image=images/cards/samples-new_2x.png
 
 @jd:body
 
diff --git a/docs/html/sdk/index.jd b/docs/html/sdk/index.jd
index cc1796e..5f795ce 100644
--- a/docs/html/sdk/index.jd
+++ b/docs/html/sdk/index.jd
@@ -1,6 +1,7 @@
 page.title=Download Android Studio and SDK Tools
 page.tags=sdk, android studio
 page.template=sdk
+page.image=images/cards/android-studio_2x.png
 header.hide=1
 page.metaDescription=Download the official Android IDE and developer tools to build apps for Android phones, tablets, wearables, TVs, and more.
 
@@ -54,7 +55,6 @@
 
 <style type="text/css">
   .offline {display:none;}
-  a.download-bundle-button {display:block;}
   h2.feature {
     padding-top:30px;
     margin-top:0;
@@ -62,20 +62,7 @@
   }
   .feature-blurb {
   margin:0px; font-size:16px; font-weight:300;
-  padding:40px 0 0 0;
-  }
-
-  .landing-button.green {
-    font-size:16px;
-    background-color:#90c653;
-    padding:8px 10px 10px;
-    margin:0;
-    width:206px;
-    text-align:center;
-  }
-
-  .landing-button.green:hover {
-    background-color:#85b84f;
+  padding-top:40px;
   }
 
   .landing-button .small {
@@ -142,7 +129,7 @@
 
 3.2 You agree that Google or third parties own all legal right, title and interest in and to the SDK, including any Intellectual Property Rights that subsist in the SDK. "Intellectual Property Rights" means any and all rights under patent law, copyright law, trade secret law, trademark law, and any and all other proprietary rights. Google reserves all rights not expressly granted to you.
 
-3.3 You may not use the SDK for any purpose not expressly permitted by this License Agreement.  Except to the extent required by applicable third party licenses, you may not: (a) copy (except for backup purposes), modify, adapt, redistribute, decompile, reverse engineer, disassemble, or create derivative works of the SDK or any part of the SDK; or (b) load any part of the SDK onto a mobile handset or any other hardware device except a personal computer, combine any part of the SDK with other software, or distribute any software or device incorporating a part of the SDK.
+3.3 You may not use the SDK for any purpose not expressly permitted by this License Agreement. Except to the extent required by applicable third party licenses, you may not: (a) copy (except for backup purposes), modify, adapt, redistribute, decompile, reverse engineer, disassemble, or create derivative works of the SDK or any part of the SDK; or (b) load any part of the SDK onto a mobile handset or any other hardware device except a personal computer, combine any part of the SDK with other software, or distribute any software or device incorporating a part of the SDK.
 
 3.4 You agree that you will not take any actions that may cause or result in the fragmentation of Android, including but not limited to distributing, participating in the creation of, or promoting in any way a software development kit derived from the SDK.
 
@@ -245,7 +232,7 @@
 14.7 This License Agreement, and your relationship with Google under this License Agreement, shall be governed by the laws of the State of California without regard to its conflict of laws provisions. You and Google agree to submit to the exclusive jurisdiction of the courts located within the county of Santa Clara, California to resolve any legal matter arising from this License Agreement. Notwithstanding this, you agree that Google shall still be allowed to apply for injunctive remedies (or an equivalent type of urgent legal relief) in any jurisdiction.
 
 
-<em>November 13, 2012</em>
+<em>December 8, 2014</em>
 </div>
 
 
@@ -283,7 +270,7 @@
 
 <img src="{@docRoot}images/tools/studio-hero.png"
 srcset="{@docRoot}images/tools/studio-hero_2x.png 2x, {@docRoot}images/tools/studio-hero.png 1x"
-width="760" height="400" alt="" style="margin-bottom:80px" />
+width="760" height="400" alt="" />
 
 <div style="color: #fff; width:226px; height:0; overflow:visible; position:absolute; top:40px; left:25px">
 
@@ -292,7 +279,7 @@
 <p style="font-size: 16px; color:#bbb; position: absolute;left: 297px; top: 5px; display: block;
 width: 400px;text-align: center;">The official Android IDE</p>
 
-<ul style="font-size:12px">
+<ul style="font-size:12px;line-height:19px;">
 <li>Android Studio IDE</li>
 <li>Android SDK tools</li>
 <li>Android 5.0 (Lollipop) Platform</li>
@@ -300,7 +287,7 @@
 </ul>
 
 
-<a class="online landing-button green download-bundle-button" style="margin-top:30px;"
+<a class="online landing-button green download-bundle-button"
 href="#Other" >Download Android Studio</a>
 
 <!-- this appears when viewing the offline docs -->
@@ -308,8 +295,9 @@
 To get Android Studio or stand-alone SDK tools, visit <a
 href="http://developer.android.com/sdk/index.html">developer.android.com/sdk/</a>
 </p>
+</div>
 
-<ul style="margin-top:50px;color:#444">
+<ul>
   <li><a href="#Requirements">System Requirements</a></li>
   <li><a href="#Other">Other Download Options</a></li>
   <li><a href="{@docRoot}sdk/installing/migrate.html">Migrating to Android Studio</a></li>
@@ -317,14 +305,13 @@
 target="_blank">Take a Survey</a></li>
 </ul>
 
-</div>
 
 
 
+<div class="cols">
+<h2 class="feature norule col-13">Intelligent code editor</h2>
 
-<h2 class="feature norule" >Intelligent code editor</h2>
-
-<div class="col-9" style="margin:0 20px 0 0">
+<div class="col-9">
   <img src="{@docRoot}images/tools/studio-hero-code.png"
 srcset="{@docRoot}images/tools/studio-hero-code_2x.png 2x, {@docRoot}images/tools/studio-hero-code.png 1x" width="520" />
 </div><!-- end col-9 (left column) -->
@@ -339,9 +326,9 @@
 
 
 
-<h2 class="feature norule">Code templates and GitHub integration</h2>
+<h2 class="feature norule col-13">Code templates and GitHub integration</h2>
 
-<div class="col-9" style="margin:0 20px 0 0">
+<div class="col-9">
   <img src="{@docRoot}images/tools/studio-hero-import.png"
 srcset="{@docRoot}images/tools/studio-hero-import_2x.png 2x, {@docRoot}images/tools/studio-hero-import.png 1x" width="520" />
 </div><!-- end col-9 (left column) -->
@@ -356,9 +343,9 @@
 
 
 
-<h2 class="feature norule">Multi-screen app development</h2>
+<h2 class="feature norule col-13">Multi-screen app development</h2>
 
-<div class="col-9" style="margin:0 20px 0 0">
+<div class="col-9">
   <img src="{@docRoot}images/tools/studio-hero-screens.png"
 srcset="{@docRoot}images/tools/studio-hero-screens_2x.png 2x, {@docRoot}images/tools/studio-hero-screens.png 1x" width="520" />
 </div><!-- end col-9 (left column) -->
@@ -373,9 +360,9 @@
 
 
 
-<h2 class="feature norule">Virtual devices for all shapes and sizes</h2>
+<h2 class="feature norule col-13">Virtual devices for all shapes and sizes</h2>
 
-<div class="col-9" style="margin:0 20px 0 0">
+<div class="col-9">
   <img src="{@docRoot}images/tools/studio-hero-avds.png"
 srcset="{@docRoot}images/tools/studio-hero-avds_2x.png 2x, {@docRoot}images/tools/studio-hero-avds.png 1x" width="520" />
 </div><!-- end col-9 (left column) -->
@@ -389,10 +376,10 @@
 
 
 
-<h2 class="feature norule">
+<h2 class="feature norule col-13">
 Android builds evolved, with Gradle</h2>
 
-<div class="col-9" style="margin:0 20px 0 0">
+<div class="col-9">
   <img src="{@docRoot}images/tools/studio-hero-gradle.png"
 srcset="{@docRoot}images/tools/studio-hero-gradle_2x.png 2x, {@docRoot}images/tools/studio-hero-gradle.png 1x" width="520" />
 </div><!-- end col-9 (left column) -->
@@ -403,8 +390,7 @@
   <p>Build APKs from Android Studio or the command line.</p>
 </div>
 
-
-
+</div>
 
 <h2 class="feature norule">More about Android Studio</h2>
 <div style="background:#424242;padding:30px; color:#fff;margin:0 0 15px;">
diff --git a/docs/html/tools/projects/templates.jd b/docs/html/tools/projects/templates.jd
index 966d25f..002e2c5 100644
--- a/docs/html/tools/projects/templates.jd
+++ b/docs/html/tools/projects/templates.jd
@@ -1,4 +1,7 @@
 page.title=Using Code Templates
+page.image=images/cards/card-using-code-templates_16x9_2x.png
+page.metaDescription=Quickly create Android app projects with various UI or functional components. 
+page.tags=studio,templates,firstapp
 @jd:body
 
   <div id="qv-wrapper">
@@ -26,7 +29,7 @@
     </div>
   </div>
 
-
+<img style="float:right" src="{@docRoot}images/cards/card-using-code-templates_16x9_2x.png">
 <p>The SDK tools provide templates for quickly creating Android application projects with the basic
   structure or for adding components to your existing application modules. The code templates
   provided by the Android SDK follow the Android design and development guidelines to get you on the
diff --git a/docs/html/tools/studio/index.jd b/docs/html/tools/studio/index.jd
index a5b14a7..7f7fbad 100644
--- a/docs/html/tools/studio/index.jd
+++ b/docs/html/tools/studio/index.jd
@@ -1,4 +1,7 @@
 page.title=Android Studio Overview
+page.image=images/cards/card-android-studio-overview_16x9_2x.jpg
+page.metaDescription=Learn about the official IDE for Android.
+page.tags=studio,sdk,tools,firstapp
 @jd:body
 
 <div id="qv-wrapper">
diff --git a/docs/html/tools/support-library/index.jd b/docs/html/tools/support-library/index.jd
index 1aef0c1..98c9ad5 100644
--- a/docs/html/tools/support-library/index.jd
+++ b/docs/html/tools/support-library/index.jd
@@ -1322,3 +1322,4 @@
       <p>Initial release with the v4 library.</p>
   </div>
 </div>
+
diff --git a/docs/html/training/building-location.jd b/docs/html/training/building-location.jd
new file mode 100644
index 0000000..9ab0908
--- /dev/null
+++ b/docs/html/training/building-location.jd
@@ -0,0 +1,11 @@
+page.title=Building Apps with Location &amp; Maps
+page.trainingcourse=true
+
+@jd:body
+
+
+<p>
+  These classes teach you how to add user location and mapping information to your app.
+  Make your app more helpful and relevant to users by providing information about where
+  they are and the world around them.
+</p>
\ No newline at end of file
diff --git a/docs/html/training/building-wearables.jd b/docs/html/training/building-wearables.jd
index 8015d0c..c9e1856 100644
--- a/docs/html/training/building-wearables.jd
+++ b/docs/html/training/building-wearables.jd
@@ -1,6 +1,6 @@
 page.title=Building Apps for Wearables
 page.trainingcourse=true
-page.image=wear/images/notifications.png
+page.image=images/cards/android-wear-apps_2x.jpg
 page.metaDescription=Learn how to build notifications, send and sync data, and use voice actions.
 
 @jd:body
@@ -11,4 +11,4 @@
 
 <p class="note"><strong>Note:</strong> For more information about the APIs used in these training
 classes, see the <a href="{@docRoot}reference/packages-wearable-support.html">Wear API reference
-documentation</a>.</p>
\ No newline at end of file
+documentation</a>.</p>
diff --git a/docs/html/training/maps/index.jd b/docs/html/training/maps/index.jd
new file mode 100644
index 0000000..3efa493
--- /dev/null
+++ b/docs/html/training/maps/index.jd
@@ -0,0 +1,70 @@
+page.title=Adding Maps
+page.tags=mapview,location
+page.article=true
+page.trainingcourse=true
+@jd:body
+
+
+<img src="{@docRoot}images/google/gps-maps.png"
+  width="300"
+  style="float:right;margin:0 0 20px 20px"
+  alt="Google maps sample image">
+
+<p>
+  Allow your users to explore the world with rich maps provided by Google. Identify
+  locations with custom markers, augment the map data with image overlays, embed one
+  or more maps as fragments, and much more.
+</p>
+
+<p>
+  The <a href="https://developers.google.com/maps/documentation/android/">Google
+  Maps Android API</a> allows you to include maps and customized mapping information
+  in your app.
+</p>
+
+
+<h2 id="features">Key Developer Features</h2>
+
+<h4>Add maps to your app</h4>
+<p>
+  With Google Maps Android API v2, you can embed maps into an activity as a fragment with a simple
+  XML snippet. The new Maps offer exciting features such as 3D maps; indoor, satellite, terrain,
+  and hybrid maps; vector-based tiles for efficient caching and drawing; animated transitions; and
+  much more. <a class="external-link" href=
+  "https://developers.google.com/maps/documentation/android/map">Add a map object</a>.
+</p>
+
+<h4>Customize the map</h4>
+<p>
+  Add markers onto the map to indicate special points of interest for your users. You can define
+  custom colors or icons for your map markers to match your app's look and feel. To further enhance
+  the app, draw polylines and polygons to indicate paths or regions, or provide complete image
+  overlays. <a class="external-link" href=
+  "https://developers.google.com/maps/documentation/android/marker">Draw markers</a>.
+</p>
+
+<h4>Control the user's view</h4>
+<p>
+  Give your users a different view of the world with the ability to control the rotation, tilt,
+  zoom, and pan properties of the "camera" perspective of the map. <a class="external-link" href=
+  "https://developers.google.com/maps/documentation/android/views">Change the view</a>.
+</p>
+
+<h4>Add Street View to your app</h4>
+<p>
+  Embed Street View into an activity and let your users explore the world through panoramic
+  360-degree views. Programmatically control the zoom and orientation (tilt and bearing) of the
+  Street View camera, and animate the camera movements over a given duration. <a class=
+  "external-link" href="https://developers.google.com/maps/documentation/android/streetview">Add
+  Street View</a>.
+</p>
+
+
+<h2 id="start">Get Started</h2>
+<p>
+  Google Maps Android API is part of the Google Play services platform. To use Google Maps,
+  set up the Google Play services SDK in your app development project. For more information,
+  see the <a class="external-link"
+  href="https://developers.google.com/maps/documentation/android/start">Getting Started</a> guide
+  for the Google Maps Android API.
+</p>
diff --git a/docs/html/training/material/index.jd b/docs/html/training/material/index.jd
index 7cbd777..6e07860 100644
--- a/docs/html/training/material/index.jd
+++ b/docs/html/training/material/index.jd
@@ -1,6 +1,6 @@
-page.title=Creating Apps with Material Design
+page.title=Material Design for Developers
 page.type=design
-page.image=images/material.png
+page.image=images/cards/material_2x.png
 page.metaDescription=Learn how to apply material design to your apps.
 
 
diff --git a/docs/html/training/monetization/ads-and-ux.jd b/docs/html/training/monetization/ads-and-ux.jd
deleted file mode 100644
index d3ab676..0000000
--- a/docs/html/training/monetization/ads-and-ux.jd
+++ /dev/null
@@ -1,250 +0,0 @@
-page.title=Advertising without Compromising User Experience
-parent.title=Monetizing Your App
-parent.link=index.html
-@jd:body
-
-
-<!-- This is the training bar -->
-<div id="tb-wrapper">
-<div id="tb">
-
-<h2>This lesson teaches you to</h2>
-<ol>
-  <li><a href="#ObtainPubAccountAndSDK">Obtain a Publisher Account and Ad SDK</a></li>
-  <li><a href="#DeclarePermissions">Declare Proper Permissions</a></li>
-  <li><a href="#SetupAdPlacement">Set Up Ad Placement</a></li>
-  <li><a href="#InitializeAd">Initialize the Ad</a></li>
-  <li><a href="#EnableTestMode">Enable Test Mode</a></li>
-  <li><a href="#ImplementListeners">Implement Ad Event Listeners</a></li>
-</ol>
-
-<h2>You should also read</h2>
-<ul>
-  <li><a href="http://code.google.com/mobile/ads/">AdMob SDK</a></li>
-</ul>
-
-
-<h2>Try it out</h2>
-
-<div class="download-box">
-  <a href="http://developer.android.com/shareables/training/MobileAds.zip" class="button">Download
-the sample app</a>
-  <p class="filename">MobileAds.zip</p>
-</div>
-
-
-</div>
-</div>
-
-<p>Advertising is one of the means to monetize (make money with) mobile applications.  In this
-lesson, you are going to learn how to incorporate banner ads in your Android application.</p>
-
-<p>While this lesson and the sample application use <a
-href="http://code.google.com/mobile/ads/">AdMob</a> to serve ads, the Android platform doesn’t
-impose any restrictions on the choice of mobile advertising network.  To the extent possible, this
-lesson generically highlights concepts that are similar across advertising networks.</p>
-
-<p>For example, each advertising network may have some network-specific configuration settings such
-as geo-targeting and ad-text font size, which may be configurable on some networks but not on
-others.  This lesson does not touch not these topics in depth and you should consult documentation
-provided by the network you choose.</p>
-
-
-<h2 id="ObtainPubAccountAndSDK">Obtain a Publisher Account and Ad SDK</h2>
-
-<p>In order to integrate advertisements in your application, you first must become a publisher by
-registering a publishing account with the mobile advertising network.  Typically, an identifier is
-provisioned for each application serving advertisements.  This is how the advertising network
-correlates advertisements served in applications.  In the case of AdMob, the identifier is known as
-the Publisher ID.  You should consult your advertising networks for details.</p>
-
-<p>Mobile advertising networks typically distribute a specific Android SDK, which consists of code
-that takes care of communication, ad refresh, look-and-feel customization, and so on.</p>
-
-<p>Most advertising networks distribute their SDK as a JAR file.  Setting up ad network JAR file in
-your Android project is no different from integrating any third-party JAR files.  First, copy the
-JAR files to the <code>libs/</code> directory of your project.  If you’re using Eclipse as IDE, be
-sure to add the JAR file to the Build Path.  It can be done through <b>Properties &gt;
-Java Build Path &gt; Libraries &gt; Add JARs</b>.</p>
-
-<img src="/images/training/ads-eclipse-build-path.png" id="figure1" />
-<p class="img-caption">
-    <strong>Figure 1.</strong> Eclipse build path settings.
-</p>
-
-
-<h2 id="DeclarePermissions">Declare Proper Permissions</h2>
-
-<p>Because the mobile ads are fetched over the network, mobile advertising SDKs usually
-require the declaration of related permissions in the Android manifest.  Other kinds of permissions
-may also be required.</p>
-
-<p>For example, here's how you can request the {@link android.Manifest.permission#INTERNET}
-permission:</p>
-
-<pre>
-&lt;/manifest&gt;
-    &lt;uses-permission android:name=&quot;android.permission.INTERNET&quot; /&gt;
-    ...
-    &lt;application&gt;...&lt;/application&gt;
-&lt;/manifest&gt;
-</pre>
-
-
-<h2 id="SetupAdPlacement">Set Up Ad Placement</h2>
-
-<div class="figure" style="width:262px">
-<img src="/images/training/ads-top-banner.png" id="figure2" />
-<p class="img-caption">
-    <strong>Figure 2.</strong> Screenshot of the ad layout in the Mobile Ads sample.
-</p>
-</div>
-
-<p>Banner ads typically are implemented as a custom {@link android.webkit.WebView} (a view for
-viewing web pages). Ads also come in different dimensions and shapes.  Once you’ve decided to put an
-ad on a particular screen, you can add it in your activity's XML layout.  The XML snippet below
-illustrates a banner ad displayed on top of a screen.</p>
-
-<pre>
-&lt;LinearLayout xmlns:android=&quot;http://schemas.android.com/apk/res/android&quot;
-        android:id=&quot;&#064;+id/ad_catalog_layout&quot;
-        android:orientation=&quot;vertical&quot;
-        android:layout_width=&quot;match_parent&quot;
-        android:layout_height=&quot;match_parent&quot; &gt;
-    &lt;com.google.ads.AdView
-        xmlns:googleads=&quot;http://schemas.android.com/apk/lib/com.google.ads&quot;
-        android:id=&quot;&#064;+id/ad&quot;
-        android:layout_width=&quot;fill_parent&quot;
-        android:layout_height=&quot;wrap_content&quot;
-        googleads:adSize=&quot;BANNER&quot;
-        googleads:adUnitId=&quot;&#064;string/admob_id&quot; /&gt;
-    &lt;TextView android:id=&quot;&#064;+id/title&quot;
-        android:layout_width=&quot;match_parent&quot;
-        android:layout_height=&quot;wrap_content&quot;
-        android:text=&quot;&#064;string/banner_top&quot; /&gt;
-    &lt;TextView android:id=&quot;&#064;+id/status&quot;
-        android:layout_width=&quot;match_parent&quot;
-        android:layout_height=&quot;wrap_content&quot; /&gt;
-&lt;/LinearLayout&gt;
-</pre>
-
-<p>You should consider using alternative ad sizes based on various configurations such as screen
-size or screen orientation.  This can easily be addressed by <a
-href="{@docRoot}guide/topics/resources/providing-resources.html#AlternativeResources">providing
-alternative resources</a>. For instance, the above sample layout might placed under the
-<code>res/layout/</code> directory as the default layout. If larger ad
-sizes are available, you can consider using them for "large" (and above) screens. For example, the
-following snippet comes from a layout file in the <code>res/layout-large/</code> directory, which
-renders a larger ad for "large" screen sizes.</p>
-
-<pre>
-...
-&lt;com.google.ads.AdView
-    xmlns:googleads=&quot;http://schemas.android.com/apk/lib/com.google.ads&quot;
-    android:id=&quot;&#064;+id/ad&quot;
-    android:layout_width=&quot;fill_parent&quot;
-    android:layout_height=&quot;wrap_content&quot;
-    <strong>googleads:adSize=&quot;IAB_LEADERBOARD&quot;</strong>
-    googleads:adUnitId=&quot;&#064;string/admob_id&quot; /&gt;
-...
-</pre>
-
-<p>Notice that the custom view name and it’s configuration attributes are network-specific.  Ad
-networks might support configurations with XML layout attributes (as shown above), runtime APIs, or
-both. In the sample application, Mobile Ads, the {@code AdView} ad size
-(<code>googleads:adSize</code>) and publisher ID (<code>googleads:adUnitId</code>) are set up in the
-XML layout.</p>
-
-<p>When deciding where to place ads within your application, you should carefully
-consider user-experience.  For example, you don’t want to fill the screen with
-multiple ads that will quite likely annoy your users.  In fact, this practice is banned by some ad
-networks. Also, avoid placing ads too closely to UI controls to avoid inadvertent clicks.</p>
-
-<p>Figures 3 and 4 illustrate what <strong>not</strong> to do.</p>
-
-<div style="float:left;width:275px">
-<img src="/images/training/ads-close-to-button.png" />
-<p class="img-caption">
-    <strong>Figure 3.</strong> Avoid putting UI
-inputs too closely to an ad banner to prevent inadvertent ad clicks.
-</p>
-</div>
-
-<div style="float:left;width:275px;height:530px;margin-left:2em">
-<img src="/images/training/ads-cover-content.png" />
-<p class="img-caption">
-    <strong>Figure 4.</strong> Don't overlay ad banner on useful content.
-</p>
-</div>
-
-
-<h2 id="InitializeAd" style="clear:left">Initialize the Ad</h2>
-
-<p>After setting up the ad in the XML layout, you can further customize the ad in {@link
-android.app.Activity#onCreate Activity.onCreate()} or {@link
-android.app.Fragment#onCreateView Fragment.onCreateView()} based on how your application is
-architected. Depending on the ad network, possible configuration parameters are: ad size, font
-color, keyword, demographics, location targeting, and so on.</p>
-
-<p>It is important to respect user privacy if certain parameters, such as demographics or location,
-are passed to ad networks for targeting purposes.  Let your users know and give them a chance to opt
-out of these features.</p>
-
-<p>In the below code snippet, keyword targeting is used.  After the keywords are set, the
-application calls <code>loadAd()</code> to begin serving ads.</p>
-
-<pre>
-public View onCreateView(LayoutInflater inflater, ViewGroup container,
-        Bundle savedInstanceState) {
-    ...
-    View v = inflater.inflate(R.layout.main, container, false);
-    mAdStatus = (TextView) v.findViewById(R.id.status);
-    mAdView = (AdView) v.findViewById(R.id.ad);
-    mAdView.setAdListener(new MyAdListener());
-
-    AdRequest adRequest = new AdRequest();
-    adRequest.addKeyword("sporting goods");
-    mAdView.loadAd(adRequest);
-    return v;
-}
-</pre>
-
-
-
-<h2 id="EnableTestMode">Enable Test Mode</h2>
-
-<p>Some ad networks provide a test mode.  This is useful during development and testing in which ad
-impressions and clicks are not counted.</p>
-
-<p class="caution"><strong>Important:</strong> Be sure to turn off test mode before publishing your
-application.</p>
-
-
-<h2 id="ImplementListeners">Implement Ad Event Listeners</h2>
-
-<p>Where available, you should consider implementing ad event listeners, which provide callbacks on
-various ad-serving events associated with the ad view.  Depending on the ad network, the listener
-might provide notifications on events such as before the ad is loaded, after the ad is loaded,
-whether the ad fails to load, or other events.  You can choose to react to these events based on
-your specific situation.  For example, if the ad fails to load, you can display a custom banner
-within the application or create a layout such that the rest of content fills up the screen.</p>
-
-<p>For example, here are some event callbacks available from AdMob's {@code AdListener}
-interface:</p>
-
-<pre>
-private class MyAdListener implements AdListener {
-    ...
-
-    &#064;Override
-    public void onFailedToReceiveAd(Ad ad, ErrorCode errorCode) {
-        mAdStatus.setText(R.string.error_receive_ad);
-    }
-
-    &#064;Override
-    public void onReceiveAd(Ad ad) {
-        mAdStatus.setText("");
-    }
-}
-</pre>
-
diff --git a/docs/html/training/monetization/index.jd b/docs/html/training/monetization/index.jd
deleted file mode 100644
index f90bfc7..0000000
--- a/docs/html/training/monetization/index.jd
+++ /dev/null
@@ -1,44 +0,0 @@
-page.title=Monetizing Your App
-
-trainingnavtop=true
-startpage=true
-next.title=Advertising without Compromising User Experience
-next.link=ads-and-ux.html
-
-@jd:body
-
-<div id="tb-wrapper">
-<div id="tb">
-
-<!-- Required platform, tools, add-ons, devices, knowledge, etc. -->
-<h2>Dependencies and prerequisites</h2>
-<ul>
-  <li>Android 1.0 or higher</li>
-  <li>Experience with <a href="{@docRoot}guide/topics/ui/declaring-layout.html">XML layouts</a></li>
-</ul>
-
-
-<h2>Try it out</h2>
-
-<div class="download-box">
-  <a href="http://developer.android.com/shareables/training/MobileAds.zip" class="button">Download
-the sample app</a>
-  <p class="filename">MobileAds.zip</p>
-</div>
-
-</div>
-</div>
-
-<p>Apart from offering paid apps, there are a number of other ways to monetize your mobile applications.  In this class, we are going to examine a number of typical methods (more lessons are to come) and their associated technical best practices.  Obviously, each application is different and you should experiment with different combinations of these and other monetization methods to determine what works best for you.</p>
-
-<h2>Lessons</h2>
-
-<!-- Create a list of the lessons in this class along with a short description of each lesson.
-These should be short and to the point. It should be clear from reading the summary whether someone
-will want to jump to a lesson or not.-->
-
-<dl>
-  <dt><b><a href="ads-and-ux.html">Advertising without Compromising User Experience</a></b></dt>
-    <dd>In this lesson, you will learn how to monetize your application with mobile
-advertisements.</dd>
-</dl>
diff --git a/docs/html/google/play/safetynet/start.jd b/docs/html/training/safetynet/index.jd
similarity index 95%
rename from docs/html/google/play/safetynet/start.jd
rename to docs/html/training/safetynet/index.jd
index 8307928..6090f41 100644
--- a/docs/html/google/play/safetynet/start.jd
+++ b/docs/html/training/safetynet/index.jd
@@ -1,11 +1,10 @@
-page.title=Getting Started with SafetyNet
-parent.title=SafetyNet for Android
-parent.link=index.html
+page.title=Checking Device Compatibility with SafetyNet
+
 @jd:body
 
 
-<div id="qv-wrapper">
-<div id="qv">
+<div id="tb-wrapper">
+<div id="tb">
 
   <h2>In this document</h2>
   <ol>
@@ -68,7 +67,9 @@
 You acknowledge and understand that the SafetyNet API works by collecting hardware and software
 information, such as device and application data and the results of integrity checks, and sending
 that data to Google for analysis. Pursuant to Section 3(d) of the
-<a href= "https://developers.google.com/terms/">Google APIs Terms of Service</a>, you agree that if you use the APIs that it is your responsibility to provide any necessary notices or consents for the collection and sharing of this data with Google.
+<a href= "https://developers.google.com/terms/">Google APIs Terms of Service</a>, you agree that if
+you use the APIs that it is your responsibility to provide any necessary notices or consents for the
+collection and sharing of this data with Google.
 </div>
 
 <h2 id="connect-play">
@@ -256,9 +257,9 @@
   <a href=
   "{@docRoot}reference/com/google/android/gms/safetynet/SafetyNetApi.AttestationResult.html#getJwsResult()">
 {@code getJwsResult()}</a> method is null or contains an {@code error:} field, then communication
-  with the service failed and should be retried. You should use an <a href=
-  "{@docRoot}google/gcm/gcm.html#retry">exponential backoff</a> technique for
-  retries, to avoid flooding the service with additional requests.
+  with the service failed and should be retried. You should use an <a class="external-link" href=
+  "https://developers.google.com/api-client-library/java/google-http-java-client/backoff">
+  exponential backoff</a> technique for retries, to avoid flooding the service with additional requests.
 </p>
 
 <h3 id="verify-compat-check">
@@ -362,7 +363,7 @@
   </li>
 </ol>
 
-<p>
+<p class="note">
   <strong>Important:</strong> This use of the Android Device Verification API only validates that the
   provided JWS message was received from the SafetyNet service. It <em>does not</em> verify that the
   payload data matches your original compatibility check request.
diff --git a/docs/html/training/sign-in/index.jd b/docs/html/training/sign-in/index.jd
new file mode 100644
index 0000000..9d49fd9
--- /dev/null
+++ b/docs/html/training/sign-in/index.jd
@@ -0,0 +1,68 @@
+page.title=Adding Sign-In
+page.tags=authentication,signin,social,google+
+page.article=true
+page.trainingcourse=true
+@jd:body
+
+
+<img src="{@docRoot}images/google/gps-googleplus.png"
+  width="300"
+  style="float:right;margin:0 0 20px 20px"
+  alt="Google maps sample image">
+
+<p>
+  The Google+ platform for Android lets you authenticate a user with the same credentials they use
+  on Google every day. Once a user signs in with Google, you can create more engaging experiences
+  and drive usage of your app.
+</p>
+
+<p>
+  The <a href="https://developers.google.com/+/mobile/android/">Google+ Android API</a> allows
+  you to integrate sign-in and social features into your app.
+</p>
+
+
+<h2 id="features">Key Developer Features</h2>
+
+<h4>Trusted authentication</h4>
+<p>
+  Google+ Sign-In is a simple, trusted, and secure way to let people sign in to your app with their
+  Google credentials and bring along their Google+ info.<br>
+  <a href="https://developers.google.com/+/mobile/android/sign-in" class="external-link">Add
+  sign-in</a>.
+</p>
+
+<h4>Access the profile and social graph</h4>
+<p>
+  Once users have signed in with Google, your app can welcome them by name, display their picture,
+  connect them with friends, and lots more.<br>
+  <a href="https://developers.google.com/+/mobile/android/people" class="external-link">Access the
+  social graph</a>.
+</p>
+
+<h4>Stand out in the stream</h4>
+<p>
+  Interactive posts is a rich way of sharing to Google+. It lets users prompt friends to take
+  specific actions in your app from a Google+ post, like "listen," "RSVP," "check-in," and over 100
+  more actions.<br>
+  <a class="external-link" href="https://developers.google.com/+/mobile/android/share">Post
+  interactive content</a>.
+</p>
+
+<h4>Recommend content</h4>
+<p>
+  Add a native +1 button so users can recommend content from your app. These endorsements can give
+  your app more credibility and help it grow faster.<br>
+  <a class="external-link" href="https://developers.google.com/+/mobile/android/recommend">Add the
+  +1 button</a>.
+</p>
+
+
+<h2 id="start">Get Started</h2>
+<p>
+  The Google+ Android APIs are part of the Google Play services platform. To use Google+ features,
+  set up the Google Play services SDK in your app development project. For more information, see
+  the <a class="external-link" href=
+  "https://developers.google.com/+/mobile/android/getting-started">Getting Started</a> guide for
+  the Google+ Platform for Android
+</p>
\ No newline at end of file
diff --git a/docs/html/training/training_toc.cs b/docs/html/training/training_toc.cs
index 82d0a90..cefff81 100644
--- a/docs/html/training/training_toc.cs
+++ b/docs/html/training/training_toc.cs
@@ -672,12 +672,59 @@
   <!-- End connectivity and cloud -->
 
 
+  <li class="nav-section">
+    <div class="nav-section-header">
+      <a href="<?cs var:toroot ?>training/building-location.html">
+      <span class="small">Building Apps with</span><br/>
+              Location &amp; Maps
+      </a>
+    </div>
+    <ul>
+      <li class="nav-section">
+        <div class="nav-section-header">
+          <a href="<?cs var:toroot ?>training/location/index.html"
+             description="How to add location-aware features to your app by getting the user's current location.">
+             Making Your App Location-Aware
+          </a>
+        </div>
+        <ul>
+          <li>
+            <a href="<?cs var:toroot ?>training/location/retrieve-current.html">
+            Getting the Last Known Location
+            </a>
+          </li>
+          <li>
+            <a href="<?cs var:toroot ?>training/location/receive-location-updates.html">
+            Receiving Location Updates
+            </a>
+          </li>
+          <li>
+            <a href="<?cs var:toroot ?>training/location/display-address.html">
+            Displaying a Location Address
+          </a>
+          </li>
+          <li><a href="<?cs var:toroot ?>training/location/geofencing.html">
+            Creating and Monitoring Geofences
+          </a>
+          </li>
+        </ul>
+      </li>
+      <li class="nav-section">
+        <a href="<?cs var:toroot ?>training/maps/index.html"
+           description="How to add maps and mapping information to your app.">
+           Adding Maps
+        </a>
+      </li>
+    </ul>
+  </li>
+  <!-- End location and maps -->
+
 
   <li class="nav-section">
     <div class="nav-section-header">
       <a href="<?cs var:toroot ?>training/building-userinfo.html">
       <span class="small">Building Apps with</span><br/>
-              User Info &amp; Location
+              User Info &amp; Sign-In
       </a>
     </div>
     <ul>
@@ -712,39 +759,15 @@
           </li>
         </ul>
       </li>
-
       <li class="nav-section">
-        <div class="nav-section-header">
-          <a href="<?cs var:toroot ?>training/location/index.html"
-             description="How to add location-aware features to your app by getting the user's current location.">
-             Making Your App Location-Aware
-          </a>
-        </div>
-        <ul>
-          <li>
-            <a href="<?cs var:toroot ?>training/location/retrieve-current.html">
-            Getting the Last Known Location
-            </a>
-          </li>
-          <li>
-            <a href="<?cs var:toroot ?>training/location/receive-location-updates.html">
-            Receiving Location Updates
-            </a>
-          </li>
-          <li>
-            <a href="<?cs var:toroot ?>training/location/display-address.html">
-            Displaying a Location Address
-          </a>
-          </li>
-          <li><a href="<?cs var:toroot ?>training/location/geofencing.html">
-            Creating and Monitoring Geofences
-          </a>
-          </li>
-        </ul>
+        <a href="<?cs var:toroot ?>training/sign-in/index.html"
+           description="How to add user sign-in functionality to your app.">
+           Adding Sign-In
+        </a>
       </li>
     </ul>
   </li>
-  <!-- End privacy and location -->
+  <!-- End user info and sign-in -->
 
 
   <li class="nav-section">
@@ -1805,19 +1828,18 @@
           >Updating Your Security Provider to Protect Against SSL Exploits</a>
       </li>
 
-      <li class="nav-section">
-        <div class="nav-section-header">
-          <a href="<?cs var:toroot ?>training/enterprise/index.html"
-             description=
-             "How to implement device management policies for enterprise-oriented apps."
-            >Developing for Enterprise</a>
-        </div>
-        <ul>
-          <li><a href="<?cs var:toroot ?>training/enterprise/device-management-policy.html">
-            Enhancing Security with Device Management Policies
-          </a>
-          </li>
-        </ul>
+      <li>
+        <a href="<?cs var:toroot ?>training/safetynet/index.html"
+           description=
+           "How to use the SafetyNet service to analyze a device where your app is running
+            and get information about its compatibility with your app."
+          >Checking Device Compatibility with SafetyNet</a>
+      </li>
+
+      <li>
+        <a href="<?cs var:toroot ?>training/enterprise/device-management-policy.html"
+            description="How to create an application that enforces security policies on devices."
+            >Enhancing Security with Device Management Policies</a>
       </li>
     </ul>
   </li>
@@ -1959,21 +1981,6 @@
           </li>
         </ul>
       </li>
-      <li class="nav-section">
-        <div class="nav-section-header">
-          <a href="<?cs var:toroot ?>training/monetization/index.html"
-             description=
-             "How to implement monetization strategies for your app without compromising
-             the user experience."
-            >Monetizing Your App</a>
-        </div>
-        <ul>
-          <li><a href="<?cs var:toroot ?>training/monetization/ads-and-ux.html">
-            Advertising without Compromising User Experience
-          </a>
-          </li>
-        </ul>
-      </li>
     </ul>
   </li>
   <!-- End best Publishing -->
diff --git a/docs/html/training/tv/start/start.jd b/docs/html/training/tv/start/start.jd
index 0f5871f..e55e202 100644
--- a/docs/html/training/tv/start/start.jd
+++ b/docs/html/training/tv/start/start.jd
@@ -1,4 +1,4 @@
-page.title=Getting Started with TV Apps
+page.title=Get Started with TV Apps
 page.tags="leanback","recyclerview","launcher"
 
 trainingnavtop=true
diff --git a/docs/html/tv/index.jd b/docs/html/tv/index.jd
index e4d7f7a..7a0cdcc 100644
--- a/docs/html/tv/index.jd
+++ b/docs/html/tv/index.jd
@@ -1,6 +1,6 @@
 page.title=About Android TV
 page.type=about
-page.image=tv/images/hero.jpg
+page.image=images/cards/android-tv_2x.png
 page.viewport_width=970
 page.tags="tv", "leanback"
 page.metaDescription=Bring your apps, games, and content to the biggest screen in the house.
diff --git a/docs/html/wear/index.jd b/docs/html/wear/index.jd
index 14a9bbf..e18ada4 100644
--- a/docs/html/wear/index.jd
+++ b/docs/html/wear/index.jd
@@ -3,7 +3,7 @@
 fullpage=true
 no_footer_links=true
 page.type=about
-
+page.image=images/cards/android-wear_2x.png
 @jd:body
 
 <style>
@@ -74,7 +74,7 @@
     </div> <!-- end .landing-section .landing-hero -->
 
 
-    <div class="landing-rest-of-page" style="margin-top:80px">
+    <div class="landing-rest-of-page">
       <div class="landing-section" id="extending-android-to-wearables">
         <div class="wrap">
           <div class="landing-section-header">
diff --git a/docs/image_sources/preview/m-preview-timeline.svg b/docs/image_sources/preview/m-preview-timeline.svg
new file mode 100644
index 0000000..9670e77
--- /dev/null
+++ b/docs/image_sources/preview/m-preview-timeline.svg
@@ -0,0 +1,234 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   version="1.1"
+   id="svg2"
+   height="744.09448"
+   width="1052.3622"
+   inkscape:version="0.91 r13725"
+   sodipodi:docname="m-preview-timeline.svg">
+  <sodipodi:namedview
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="1"
+     objecttolerance="10"
+     gridtolerance="10"
+     guidetolerance="10"
+     inkscape:pageopacity="0"
+     inkscape:pageshadow="2"
+     inkscape:window-width="1185"
+     inkscape:window-height="755"
+     id="namedview55"
+     showgrid="false"
+     inkscape:zoom="2.4151899"
+     inkscape:cx="365.39354"
+     inkscape:cy="453.57114"
+     inkscape:window-x="0"
+     inkscape:window-y="0"
+     inkscape:window-maximized="0"
+     inkscape:current-layer="svg2" />
+  <defs
+     id="defs4" />
+  <metadata
+     id="metadata7">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <dc:title />
+      </cc:Work>
+    </rdf:RDF>
+  </metadata>
+  <rect
+     y="340.58325"
+     x="782.31952"
+     height="5"
+     width="107.6871"
+     id="rect4170-2"
+     style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:#808080;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:3;marker:none;enable-background:accumulate" />
+  <g
+     transform="translate(0,-308.2677)"
+     id="layer1">
+    <rect
+       y="649.00873"
+       x="25.750326"
+       height="5"
+       width="617.74329"
+       id="rect4170"
+       style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:#808080;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:3;marker:none;enable-background:accumulate" />
+    <rect
+       transform="scale(1,-1)"
+       y="-655.77258"
+       x="117.70681"
+       height="8.5310192"
+       width="532.54163"
+       id="rect2987"
+       style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:#99cc00;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:3;marker:none;enable-background:accumulate" />
+    <path
+       transform="translate(53.377673,246.4966)"
+       d="m 118.48638,404.74948 a 14.218366,14.218366 0 0 1 -14.21837,14.21837 14.218366,14.218366 0 0 1 -14.218363,-14.21837 14.218366,14.218366 0 0 1 14.218363,-14.21836 14.218366,14.218366 0 0 1 14.21837,14.21836 z"
+       id="path3757"
+       style="color:#000000;fill:#99cc00;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:3;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
+    <flowRoot
+       transform="translate(-9.180856,237.63686)"
+       style="color:#000000;font-style:normal;font-variant:normal;font-weight:300;font-stretch:normal;font-size:36px;line-height:125%;font-family:Roboto;-inkscape-font-specification:'Roboto, Light';text-align:center;writing-mode:lr-tb;text-anchor:middle;display:inline;overflow:visible;visibility:visible;fill:#666666;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:3;marker:none;enable-background:accumulate"
+       id="flowRoot3759"
+       xml:space="preserve"><flowRegion
+         id="flowRegion3761"><rect
+           style="font-style:normal;font-variant:normal;font-weight:300;font-stretch:normal;font-size:36px;line-height:125%;font-family:Roboto;-inkscape-font-specification:'Roboto, Light';text-align:center;writing-mode:lr-tb;text-anchor:middle;fill:#666666"
+           y="260.83688"
+           x="50.939774"
+           height="135.3176"
+           width="155.34293"
+           id="rect3763" /></flowRegion><flowPara
+         id="flowPara3383">Preview 1</flowPara></flowRoot>    <path
+       transform="translate(279.50908,246.65479)"
+       d="m 118.48638,404.74948 a 14.218366,14.218366 0 0 1 -14.21837,14.21837 14.218366,14.218366 0 0 1 -14.218363,-14.21837 14.218366,14.218366 0 0 1 14.218363,-14.21836 14.218366,14.218366 0 0 1 14.21837,14.21836 z"
+       id="path3757-1"
+       style="color:#000000;fill:#99cc00;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:3;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
+    <path
+       transform="translate(505.64051,247.60268)"
+       d="m 118.48638,404.74948 a 14.218366,14.218366 0 0 1 -14.21837,14.21837 14.218366,14.218366 0 0 1 -14.218363,-14.21837 14.218366,14.218366 0 0 1 14.218363,-14.21836 14.218366,14.218366 0 0 1 14.21837,14.21836 z"
+       id="path3757-1-8"
+       style="color:#000000;fill:#99cc00;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:3;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
+    <flowRoot
+       transform="translate(-1.0121143,408.40861)"
+       style="font-size:36px;font-style:normal;font-variant:normal;font-weight:300;font-stretch:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;color:#000000;fill:#666666;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:3;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-family:Roboto;-inkscape-font-specification:Roboto Light"
+       id="flowRoot3759-2"
+       xml:space="preserve"><flowRegion
+         id="flowRegion3761-9"><rect
+           style="text-align:center;text-anchor:middle;fill:#666666"
+           y="260.83688"
+           x="50.939774"
+           height="51.644661"
+           width="80.11277"
+           id="rect3763-3" /></flowRegion><flowPara
+         id="flowPara3766-9"
+         style="text-align:center;text-anchor:middle;fill:#666666">May</flowPara></flowRoot>    <flowRoot
+       transform="translate(177.38621,408.98166)"
+       style="font-size:36px;font-style:normal;font-variant:normal;font-weight:300;font-stretch:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;color:#000000;fill:#666666;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:3;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-family:Roboto;-inkscape-font-specification:Roboto Light"
+       id="flowRoot3759-2-1"
+       xml:space="preserve"><flowRegion
+         id="flowRegion3761-9-4"><rect
+           style="text-align:center;text-anchor:middle;fill:#666666"
+           y="260.83688"
+           x="50.939774"
+           height="51.644661"
+           width="80.11277"
+           id="rect3763-3-3" /></flowRegion><flowPara
+         id="flowPara3766-9-1"
+         style="text-align:center;text-anchor:middle;fill:#666666">June</flowPara></flowRoot>    <flowRoot
+       transform="translate(406.04158,409.3565)"
+       style="font-size:36px;font-style:normal;font-variant:normal;font-weight:300;font-stretch:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;color:#000000;fill:#666666;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:3;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-family:Roboto;-inkscape-font-specification:Roboto Light"
+       id="flowRoot3759-2-1-2"
+       xml:space="preserve"><flowRegion
+         id="flowRegion3761-9-4-5"><rect
+           style="text-align:center;text-anchor:middle;fill:#666666"
+           y="260.83688"
+           x="50.939774"
+           height="51.644661"
+           width="80.11277"
+           id="rect3763-3-3-1" /></flowRegion><flowPara
+         id="flowPara3766-9-1-3"
+         style="text-align:center;text-anchor:middle;fill:#666666">July</flowPara></flowRoot>    <flowRoot
+       transform="translate(672.0263,409.3565)"
+       style="color:#000000;font-style:normal;font-variant:normal;font-weight:300;font-stretch:normal;font-size:36px;line-height:125%;font-family:Roboto;-inkscape-font-specification:'Roboto, Light';text-align:center;writing-mode:lr-tb;text-anchor:middle;display:inline;overflow:visible;visibility:visible;fill:#666666;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:3;marker:none;enable-background:accumulate"
+       id="flowRoot3759-2-1-2-6"
+       xml:space="preserve"><flowRegion
+         id="flowRegion3761-9-4-5-0"><rect
+           style="font-style:normal;font-variant:normal;font-weight:300;font-stretch:normal;font-size:36px;line-height:125%;font-family:Roboto;-inkscape-font-specification:'Roboto, Light';text-align:center;writing-mode:lr-tb;text-anchor:middle;fill:#666666;fill-opacity:1"
+           y="260.83688"
+           x="50.939774"
+           height="51.644653"
+           width="135.78827"
+           id="rect3763-3-3-1-1" /></flowRegion><flowPara
+         id="flowPara4380">2015 Q3</flowPara></flowRoot>    <path
+       id="path4048"
+       d="m 119.47195,546.39546 c 0,93.40673 0,93.40673 0,93.40673"
+       style="fill:#666666;stroke:#000000;stroke-width:1.96750557px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
+    <flowRoot
+       transform="translate(637.68275,236.45687)"
+       style="color:#000000;font-style:normal;font-variant:normal;font-weight:300;font-stretch:normal;font-size:36px;line-height:125%;font-family:Roboto;-inkscape-font-specification:'Roboto, Light';text-align:center;writing-mode:lr-tb;text-anchor:middle;display:inline;overflow:visible;visibility:visible;fill:#666666;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:3;marker:none;enable-background:accumulate"
+       id="flowRoot3759-8-3-0"
+       xml:space="preserve"><flowRegion
+         id="flowRegion3761-2-2-4"><rect
+           style="font-style:normal;font-variant:normal;font-weight:300;font-stretch:normal;font-size:36px;line-height:125%;font-family:Roboto;-inkscape-font-specification:'Roboto, Light';text-align:center;writing-mode:lr-tb;text-anchor:middle;fill:#666666"
+           y="260.83688"
+           x="50.939774"
+           height="86.562103"
+           width="270.41403"
+           id="rect3763-4-5-9" /></flowRegion><flowPara
+         id="flowPara3388">Final Release</flowPara></flowRoot>    <rect
+       transform="scale(1,-1)"
+       y="-655.4176"
+       x="684.83575"
+       height="8.5310192"
+       width="12.470854"
+       id="rect2987-8"
+       style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:#99cc00;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:3;marker:none;enable-background:accumulate" />
+    <rect
+       transform="scale(1,-1)"
+       y="-655.85944"
+       x="756.41724"
+       height="8.5310192"
+       width="64.610497"
+       id="rect2987-8-4"
+       style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:#99cc00;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:3;marker:none;enable-background:accumulate" />
+    <rect
+       transform="scale(1,-1)"
+       y="-655.4176"
+       x="661.85895"
+       height="8.5310192"
+       width="12.470854"
+       id="rect2987-8-3"
+       style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:#99cc00;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:3;marker:none;enable-background:accumulate" />
+    <rect
+       transform="scale(1,-1)"
+       y="-655.4176"
+       x="730.78931"
+       height="8.5310192"
+       width="12.470854"
+       id="rect2987-8-42"
+       style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:#99cc00;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:3;marker:none;enable-background:accumulate" />
+    <rect
+       transform="scale(1,-1)"
+       y="-655.4176"
+       x="707.8125"
+       height="8.5310192"
+       width="12.470854"
+       id="rect2987-8-3-3"
+       style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:#99cc00;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:3;marker:none;enable-background:accumulate" />
+    <flowRoot
+       transform="translate(220.84514,238.95361)"
+       style="color:#000000;font-style:normal;font-variant:normal;font-weight:300;font-stretch:normal;font-size:36px;line-height:125%;font-family:Roboto;-inkscape-font-specification:'Roboto, Light';text-align:center;writing-mode:lr-tb;text-anchor:middle;display:inline;overflow:visible;visibility:visible;fill:#666666;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:3;marker:none;enable-background:accumulate"
+       id="flowRoot3759-24"
+       xml:space="preserve"><flowRegion
+         id="flowRegion3761-7"><rect
+           style="font-style:normal;font-variant:normal;font-weight:300;font-stretch:normal;font-size:36px;line-height:125%;font-family:Roboto;-inkscape-font-specification:'Roboto, Light';text-align:center;writing-mode:lr-tb;text-anchor:middle;fill:#666666"
+           y="260.83688"
+           x="50.939774"
+           height="135.3176"
+           width="155.34293"
+           id="rect3763-8" /></flowRegion><flowPara
+         id="flowPara3383-3">Preview 2</flowPara></flowRoot>    <flowRoot
+       transform="translate(447.44248,238.95361)"
+       style="color:#000000;font-style:normal;font-variant:normal;font-weight:300;font-stretch:normal;font-size:36px;line-height:125%;font-family:Roboto;-inkscape-font-specification:'Roboto, Light';text-align:center;writing-mode:lr-tb;text-anchor:middle;display:inline;overflow:visible;visibility:visible;fill:#666666;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:3;marker:none;enable-background:accumulate"
+       id="flowRoot3759-1"
+       xml:space="preserve"><flowRegion
+         id="flowRegion3761-99"><rect
+           style="font-style:normal;font-variant:normal;font-weight:300;font-stretch:normal;font-size:36px;line-height:125%;font-family:Roboto;-inkscape-font-specification:'Roboto, Light';text-align:center;writing-mode:lr-tb;text-anchor:middle;fill:#666666"
+           y="260.83688"
+           x="50.939774"
+           height="135.3176"
+           width="155.34293"
+           id="rect3763-7" /></flowRegion><flowPara
+         id="flowPara3383-38">Preview 3</flowPara></flowRoot>  </g>
+</svg>
