diff --git a/assets/package.json b/assets/package.json
index a9e7f3a24938452d43930a4163ed4ff5a0709d5f..8f7c84e9f5bb476ca3c5eacd4639ba7aa7f3900a 100644
--- a/assets/package.json
+++ b/assets/package.json
@@ -18,7 +18,7 @@
     "build:fonts": "mkdir -p dist/fonts && cp -r node_modules/uswds/src/fonts/* dist/fonts && cp node_modules/@fortawesome/fontawesome-free/webfonts/* dist/fonts",
     "build:images": "mkdir -p dist/img && mkdir -p dist/images && cp -r node_modules/uswds/src/img/* dist/img && cp -r node_modules/wdfn-viz/src/img/* dist/img && cp -r node_modules/leaflet/dist/images/* dist/images && cp -r src/img/* dist/img",
     "build:js": "rollup -c --environment NODE_ENV:production && mkdir -p dist/scripts && cp node_modules/date-time-format-timezone/build/browserified/date-time-format-timezone-complete-min.js dist/scripts",
-    "build:vendorjs": "mkdir -p dist/scripts && concat -o dist/scripts/vendor.js node_modules/leaflet/dist/leaflet.js node_modules/esri-leaflet/dist/esri-leaflet.js node_modules/leaflet.markercluster/dist/leaflet.markercluster.js  && node_modules/leaflet.markercluster/dist/leaflet.markercluster.js",
+    "build:vendorjs": "mkdir -p dist/scripts && concat -o dist/scripts/vendor.js node_modules/leaflet/dist/leaflet.js node_modules/esri-leaflet/dist/esri-leaflet.js node_modules/leaflet.markercluster/dist/leaflet.markercluster.js  && cp node_modules/leaflet.markercluster/dist/leaflet.markercluster.js.map dist/scripts",
     "build:autotrack": "uglifyjs --output dist/autotrack.js node_modules/autotrack/autotrack.js",
     "hash-assets": "gulp --gulpfile ./gulpfile.js revall",
     "serve:static": "live-server --port=9000 --cors --no-browser dist",
@@ -28,7 +28,7 @@
     "watch:css": "nodemon -w src/styles -e scss -x \"npm run build:css\"",
     "watch:fonts": "nodemon -w node_modules/uswds/src/fonts -x \"npm run build:fonts\"",
     "watch:images": "nodemon -w src/img -x \"npm run build:images\"",
-    "watch:js": "mkdir -p dist/scripts && npm run build:vendorjs && cp -r node_modules/date-time-format-timezone/build/browserified/date-time-format-timezone-complete-min.js dist/scripts && rollup -c --watch"
+    "watch:js": "mkdir -p dist/scripts && npm run build:vendorjs && cp node_modules/date-time-format-timezone/build/browserified/date-time-format-timezone-complete-min.js dist/scripts && rollup -c --watch"
   },
   "engines": {
     "node": "10.18.1"
diff --git a/wdfn-server/waterdata/templates/base.html b/wdfn-server/waterdata/templates/base.html
index f388fedf521633c2557bb2fda955caea42e57422..8579661a7e7761da3304505e94f430815c534ef0 100644
--- a/wdfn-server/waterdata/templates/base.html
+++ b/wdfn-server/waterdata/templates/base.html
@@ -1,21 +1,18 @@
 {% extends 'base_plain.html' %}
 
+{% block page_css %}
+      <link rel="stylesheet" href="{{ 'main.css' | asset_url }}">
+{% endblock %}
+
+{% block bundle_script %}
+    <script async src="{{ 'bundle.js' | asset_url }}"></script>
+{% endblock %}
+
 {% block body %}
-    <section role="banner">
-        {% include 'partials/header.html' %}
-        <header id="wdfn-alert-banner">
-            <input type="checkbox" id="wdfn-alert-dismiss" hidden/>
-            <div class="wdfn-alert-body content-container">
-                <label title="Close" class="close" for="wdfn-alert-dismiss"><i class="fas fa-times"></i></label>
-                <div>
-                    Beta release. Use <a class="usa-link" target="_blank" href="https://water.usgs.gov/contact/gsanswers?pemail=gs-w_water_data_for_the_nation&subject=Water%20Data%20for%20the%20Nation%20Feedback&viewnote=%3CH1%3EUSGS+WDFN+TNG+Feedback%3C/H1%3E">this form</a> to provide feedback.
-                </div>
-            </div>
-        </header>
-    </section>
-    <main id="main-content" class="grid-container content-container usa-prose">
-        {% block content %}{% endblock %}
-    </main>
-    {% include 'partials/footer.html' %}
-    {% block extra_body %}{% endblock %}
+{% include 'partials/base.html' %}
+<main id="main-content" class="grid-container content-container usa-prose">
+    {% block content %}{% endblock %}
+</main>
+{% include 'partials/footer.html' %}
+{% block extra_body %}{% endblock %}
 {% endblock %}
diff --git a/wdfn-server/waterdata/templates/base_network.html b/wdfn-server/waterdata/templates/base_network.html
index 3731b8242c43e230602080a6a08a9f27a8d82aa6..036099135c22915b4c5624574ac499fbabf333ed 100644
--- a/wdfn-server/waterdata/templates/base_network.html
+++ b/wdfn-server/waterdata/templates/base_network.html
@@ -1,21 +1,20 @@
-{% extends 'base_plain_network.html' %}
+{% extends 'base_plain.html' %}
+
+{% block page_css %}
+      <link rel="stylesheet" href="{{ 'vendor.css' | asset_url }}">
+      <link rel="stylesheet" href="{{ 'network.css' | asset_url }}">
+{% endblock %}
+
+{% block bundle_script %}
+    <script src="{{ 'scripts/vendor.js' | asset_url }}"></script>
+    <script async src="{{ 'network-bundle.js' | asset_url }}"></script>
+{% endblock %}
 
 {% block body %}
-    <section role="banner">
-        {% include 'partials/header.html' %}
-        <header id="wdfn-alert-banner">
-            <input type="checkbox" id="wdfn-alert-dismiss" hidden/>
-            <div class="wdfn-alert-body content-container">
-                <label title="Close" class="close" for="wdfn-alert-dismiss"><i class="fas fa-times"></i></label>
-                <div>
-                    Beta release. Use <a class="usa-link" target="_blank" href="https://water.usgs.gov/contact/gsanswers?pemail=gs-w_water_data_for_the_nation&subject=Water%20Data%20for%20the%20Nation%20Feedback&viewnote=%3CH1%3EUSGS+WDFN+TNG+Feedback%3C/H1%3E">this form</a> to provide feedback.
-                </div>
-            </div>
-        </header>
-    </section>
-    <main id="main-content" class="grid-container content-container usa-prose">
-        {% block content %}{% endblock %}
-    </main>
-    {% include 'partials/footer.html' %}
-    {% block extra_body %}{% endblock %}
+{% include 'partials/base.html' %}
+<main id="main-content" class="grid-container content-container usa-prose">
+    {% block content %}{% endblock %}
+</main>
+{% include 'partials/footer.html' %}
+{% block extra_body %}{% endblock %}
 {% endblock %}
diff --git a/wdfn-server/waterdata/templates/base_plain.html b/wdfn-server/waterdata/templates/base_plain.html
index 5c24613fca07c610774114cca2ac6698daa846b8..ddc4c10078fc9f8f5cb44ef689fddfdb85faaed2 100644
--- a/wdfn-server/waterdata/templates/base_plain.html
+++ b/wdfn-server/waterdata/templates/base_plain.html
@@ -10,7 +10,8 @@
         {% include 'partials/google_analytics.html' %}
 
         <link rel="shortcut icon" type="image/ico" href="{{ 'img/usgs_favicon.ico' | asset_url }}">
-        <link rel="stylesheet" href="{{ 'main.css' | asset_url }}">
+
+        {% block page_css %}{% endblock %}
         <script type="text/javascript">
             var CONFIG = {
                 'SERVICE_ROOT': '{{ config.SERVICE_ROOT }}/nwis',
@@ -37,8 +38,7 @@
             }
         </script>
 
-
-        <script async src="{{ 'bundle.js' | asset_url }}"></script>
+        {% block bundle_script %}{% endblock %}
         {% block page_script %}{% endblock %}
         <!-- Google Tag Manager --><script>(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src='https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f);})(window,document,'script','dataLayer','GTM-TKQR8KP');</script>
         <title>
diff --git a/wdfn-server/waterdata/templates/base_plain_network.html b/wdfn-server/waterdata/templates/base_plain_network.html
deleted file mode 100644
index 4dbe9fb1d8b82a3ebe50377eec2ccbaa6ecdc64c..0000000000000000000000000000000000000000
--- a/wdfn-server/waterdata/templates/base_plain_network.html
+++ /dev/null
@@ -1,87 +0,0 @@
-<!DOCTYPE html>
-<html lang="en">
-    <head>
-        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-        <meta http-equiv="X-UA-Compatible" content="IE=edge">
-        <meta name="viewport" content="width=device-width, initial-scale=1">
-        <meta name="format-detection" content="telephone=no">
-        {% block extra_head_tags %}{% endblock %}
-
-        {% include 'partials/google_analytics.html' %}
-
-        <link rel="shortcut icon" type="image/ico" href="{{ 'img/usgs_favicon.ico' | asset_url }}">
-        <script src="{{ 'scripts/vendor.js' | asset_url }}"></script>
-        <link rel="stylesheet" href="{{ 'vendor.css' | asset_url }}">
-        <link rel="stylesheet" href="{{ 'network.css' | asset_url }}">
-
-        <script type="text/javascript">
-            var CONFIG = {
-                'SERVICE_ROOT': '{{ config.SERVICE_ROOT }}/nwis',
-                'PAST_SERVICE_ROOT': '{{ config.PAST_SERVICE_ROOT }}/nwis',
-                'OBSERVATIONS_ENDPOINT': '{{ config.OBSERVATIONS_ENDPOINT }}',
-                'HYDRO_ENDPOINT': '{{ config.HYDRO_ENDPOINT }}',
-                'FIM_GIS_ENDPOINT': '{{ config.FIM_GIS_ENDPOINT }}',
-                'FIM_ENDPOINT': '{{ config.FIM_ENDPOINT }}',
-                'STATIC_URL': '{{ config.STATIC_ROOT }}',
-                'TIMESERIES_AUDIO_ENABLED': '{{ config.TIMESERIES_AUDIO_ENABLED}}' === 'True' ? true : false,
-                'MULTIPLE_TIME_SERIES_METADATA_SELECTOR_ENABLED': '{{ config.MULTIPLE_TIME_SERIES_METADATA_SELECTOR_ENABLED }}' === 'True' ? true : false,
-                'WEATHER_SERVICE_ROOT': '{{ config.WEATHER_SERVICE_ROOT }}',
-                'CITIES_ENDPOINT': '{{ config.CITIES_ENDPOINT }}',
-                'NLDI_SERVICES_ENDPOINT': '{{ config.NLDI_SERVICES_ENDPOINT }}',
-                'NLDI_SERVICES_DISTANCE': '{{ config.NLDI_SERVICES_DISTANCE }}',
-                'NETWORK_ENDPOINT': '{{ config.NETWORK_ENDPOINT }}'
-            };
-        </script>
-        <script src="https://cdn.polyfill.io/v2/polyfill.min.js"></script>
-        <script src="https://cdn.polyfill.io/v2/polyfill.min.js?features=Intl.~locale.en"></script>
-        <script type="text/javascript">
-            if (!!document.documentMode) {
-                document.write('<script src="{{ "scripts/date-time-format-timezone-complete-min.js" | asset_url }}"><\/script>');
-            }
-        </script>make
-
-        <script async src="{{ 'network-bundle.js' | asset_url }}"></script>
-
-        {% block page_script %}{% endblock %}
-        <!-- Google Tag Manager --><script>(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src='https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f);})(window,document,'script','dataLayer','GTM-TKQR8KP');</script>
-        <title>
-            {% block title %}{% if page_title %}{{ page_title }} - {% endif %}USGS Water Data for the Nation{% endblock %}
-        </title>
-    </head>
-    <body {% if body_id %}id="{{ body_id }}"{% endif %}>
-        <script>document.body.className += ' js';</script>
-        {% block body %}{% endblock %}
-    </body>
-    {% if config.LIVE_RELOAD_PATH %}
-        <script type="text/javascript">
-            // <![CDATA[  <-- For SVG support
-            if ('WebSocket' in window) {
-                (function() {
-                    function refreshCSS() {
-                        var sheets = [].slice.call(document.getElementsByTagName("link"));
-                        var head = document.getElementsByTagName("head")[0];
-                        for (var i = 0; i < sheets.length; ++i) {
-                            var elem = sheets[i];
-                            head.removeChild(elem);
-                            var rel = elem.rel;
-                            if (elem.href && typeof rel != "string" || rel.length == 0 || rel.toLowerCase() == "stylesheet") {
-                                var url = elem.href.replace(/(&|\?)_cacheOverride=\d+/, '');
-                                elem.href = url + (url.indexOf('?') >= 0 ? '&' : '?') + '_cacheOverride=' + (new Date().valueOf());
-                            }
-                            head.appendChild(elem);
-                        }
-                    }
-                    var socket = new WebSocket('{{ config.LIVE_RELOAD_PATH }}');
-                    socket.onmessage = function(msg) {
-                        if (msg.data == 'reload') window.location.reload();
-                        else if (msg.data == 'refreshcss') refreshCSS();
-                    };
-                    console.log('Live reload enabled.');
-                })();
-            }
-            // ]]>
-        </script>
-    {% endif %}
-    {% block extra_html %}{% endblock %}
-    <!-- Google Tag Manager (noscript) --><noscript><iframe src="https://www.googletagmanager.com/ns.html?id=GTM-TKQR8KP" height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript>
-</html>
diff --git a/wdfn-server/waterdata/templates/monitoring_location_embed.html b/wdfn-server/waterdata/templates/monitoring_location_embed.html
index 9f868593edacaa6c041c30de4b7fc3b84fc9a5ef..a249f0a7c3b64cc915bf2b9adf7fd7abfc8a2138 100644
--- a/wdfn-server/waterdata/templates/monitoring_location_embed.html
+++ b/wdfn-server/waterdata/templates/monitoring_location_embed.html
@@ -1,5 +1,12 @@
 {% extends 'base_plain.html' %}
 
+{% block page_css %}
+ <link rel="stylesheet" href="{{ 'main.css' | asset_url }}">
+{% endblock page_css %}
+{% block page_script %}
+ <script async src="{{ 'bundle.js' | asset_url }}"></script>">
+{% endblock page_script %}
+
 {% import 'macros/components.html' as components %}
 
 {% block body %}
diff --git a/wdfn-server/waterdata/templates/partials/base.html b/wdfn-server/waterdata/templates/partials/base.html
new file mode 100644
index 0000000000000000000000000000000000000000..f08cf6eef4375940a49755949fec8a85f1563610
--- /dev/null
+++ b/wdfn-server/waterdata/templates/partials/base.html
@@ -0,0 +1,12 @@
+<section role="banner">
+        {% include 'partials/header.html' %}
+        <header id="wdfn-alert-banner">
+            <input type="checkbox" id="wdfn-alert-dismiss" hidden/>
+            <div class="wdfn-alert-body content-container">
+                <label title="Close" class="close" for="wdfn-alert-dismiss"><i class="fas fa-times"></i></label>
+                <div>
+                    Beta release. Use <a class="usa-link" target="_blank" href="https://water.usgs.gov/contact/gsanswers?pemail=gs-w_water_data_for_the_nation&subject=Water%20Data%20for%20the%20Nation%20Feedback&viewnote=%3CH1%3EUSGS+WDFN+TNG+Feedback%3C/H1%3E">this form</a> to provide feedback.
+                </div>
+            </div>
+        </header>
+    </section>
diff --git a/wdfn-server/waterdata/templates/states_counties.html b/wdfn-server/waterdata/templates/states_counties.html
index 9beac7893444aac4e7da0c615165d7997705c270..1fd537d66648f480b1785f81daca033227617978 100644
--- a/wdfn-server/waterdata/templates/states_counties.html
+++ b/wdfn-server/waterdata/templates/states_counties.html
@@ -1,4 +1,4 @@
-{% extends 'base.html' %}
+{% extends 'macros/base.html' %}
 
 {% if unit_cd %}{% set page_title = political_unit.name %}{% endif %}