diff --git a/assets/src/scripts/monitoring-location/components/hydrograph/data-table.js b/assets/src/scripts/monitoring-location/components/hydrograph/data-table.js
index 881346d98d3e1d461bfdf0281fa0eaa41de1ac46..14014a1e2afbf16c77cae181e62a8bd798e66b31 100644
--- a/assets/src/scripts/monitoring-location/components/hydrograph/data-table.js
+++ b/assets/src/scripts/monitoring-location/components/hydrograph/data-table.js
@@ -8,6 +8,7 @@ import {link} from 'ui/lib/d3-redux';
 import {getGroundwaterLevelsTableData} from './selectors/discrete-data';
 import {getIVTableData} from './selectors/iv-data';
 import {drawDownloadForm} from './download-data';
+import {appendButton} from './select-actions';
 
 const TABLE_CAPTION = {
     iv: 'Instantaneous value data',
@@ -107,7 +108,18 @@ export const drawDataTables = function(elem, store, siteno, agencyCd) {
             dataKind: () => 'gw',
             currentData: getGroundwaterLevelsTableData
         })));
-    elem.append('div')
-        .attr('id', 'download-graph-data-container')
-        .call(drawDownloadForm, store, siteno, agencyCd);
+    var container = elem.append('div')
+        .attr('class', 'select-actions-container');
+    var buttonGroup = container.append('ul')
+        .attr('class', 'select-actions-button-group usa-button-group');
+    appendButton(buttonGroup, {
+        uswdsIcon:'file_download',
+        buttonLabel:'Retrieve data',
+        idOfDivToControl: 'download-graph-data-container-data-table'
+    });
+    container.append('div')
+        .attr('id', 'download-graph-data-container-data-table')
+        .attr('hidden', 'true')
+        .call(drawDownloadForm, store, siteno, agencyCd, 'data-table');
+
 };
\ No newline at end of file
diff --git a/assets/src/scripts/monitoring-location/components/hydrograph/data-table.test.js b/assets/src/scripts/monitoring-location/components/hydrograph/data-table.test.js
index 234e2279318fb9ffcff0d10ec6b073d51245d501..c5ab9366af9f9bfe50854eaafb1ad033b5ff1900 100644
--- a/assets/src/scripts/monitoring-location/components/hydrograph/data-table.test.js
+++ b/assets/src/scripts/monitoring-location/components/hydrograph/data-table.test.js
@@ -46,7 +46,7 @@ describe('monitoring-location/components/hydrograph/data-table', () => {
         const gwTable = testDiv.select('#gw-table-container').select('table');
         expect(gwTable.select('caption').text()).toBe('Field visit data');
         expect(gwTable.selectAll('tr').size()).toBe(5);
-        const downloadSection = testDiv.select('#download-graph-data-container');
+        const downloadSection = testDiv.select('#download-graph-data-container-data-table');
         expect(downloadSection.selectAll('input[type="radio"]').size()).toBe(3);
     });
 
diff --git a/assets/src/scripts/monitoring-location/components/hydrograph/download-data.js b/assets/src/scripts/monitoring-location/components/hydrograph/download-data.js
index 086a59844306f99e93153d24a025e30f0793fd2b..5b743efe7ab913a0c6c035345d349748c0b96f1a 100644
--- a/assets/src/scripts/monitoring-location/components/hydrograph/download-data.js
+++ b/assets/src/scripts/monitoring-location/components/hydrograph/download-data.js
@@ -83,10 +83,6 @@ const getSiteMetaDataURL = function(siteno) {
     });
 };
 
-const uniqueNumber = (length=16) => {
-    return parseInt(Math.ceil(Math.random() * Date.now()).toPrecision(length).toString().replace('.', ''));
-};
-
 /*
  * Helper function to render a single checkbox in container.
  */
@@ -97,7 +93,7 @@ const drawRadioButton = function(container, inputID, label, value, nameSuffix) {
         .attr('class', 'usa-radio__input')
         .attr('id', inputID)
         .attr('type', 'radio')
-        .attr('name', 'retrieve-value-'+nameSuffix)
+        .attr('name', `retrieve-value-${nameSuffix}`)
         .attr('value', value);
     radioContainer.append('label')
         .attr('class', 'usa-radio__label')
@@ -113,27 +109,27 @@ const drawRadioButtons = function(container, {
     hasVisibleCompareIVData,
     hasVisibleMedianData,
     hasVisibleGroundwaterLevels,
-    primaryParameter
+    primaryParameter,
+    uniqueId
 }) {
     container.select('.download-radio-container').remove();
-    let uniqueSuffix = uniqueNumber();
     const radioContainer = container.append('div')
         .attr('class', 'download-radio-container');
     if (primaryParameter && !isCalculatedTemperature(primaryParameter.parameterCode)) {
         if (hasVisiblePrimaryIVData) {
-            radioContainer.call(drawRadioButton, 'download-primary-iv-data-'+uniqueSuffix, 'Current time-series data', 'primary', uniqueSuffix);
+            radioContainer.call(drawRadioButton, `download-primary-iv-data-${uniqueId}`, 'Current time-series data', 'primary', uniqueId);
         }
         if (hasVisibleCompareIVData) {
-            radioContainer.call(drawRadioButton, 'download-compare-iv-data-'+uniqueSuffix, 'Prior year time-series data', 'compare', uniqueSuffix);
+            radioContainer.call(drawRadioButton, `download-compare-iv-data-${uniqueId}`, 'Prior year time-series data', 'compare', uniqueId);
         }
         if (hasVisibleMedianData) {
-            radioContainer.call(drawRadioButton, 'download-median-data-'+uniqueSuffix, 'Median', 'median', uniqueSuffix);
+            radioContainer.call(drawRadioButton, `download-median-data-${uniqueId}`, 'Median', 'median', uniqueId);
         }
         if (hasVisibleGroundwaterLevels) {
-            radioContainer.call(drawRadioButton, 'download-field-visits-'+uniqueSuffix, 'Field visits', 'groundwater-levels', uniqueSuffix);
+            radioContainer.call(drawRadioButton, `download-field-visits-${uniqueId}`, 'Field visits', 'groundwater-levels', uniqueId);
         }
     }
-    radioContainer.call(drawRadioButton, 'download-site-meta-data-'+uniqueSuffix, 'About this location', 'site', uniqueSuffix);
+    radioContainer.call(drawRadioButton, `download-site-meta-data-${uniqueId}`, 'About this location', 'site', uniqueId);
 };
 
 /*
@@ -143,7 +139,7 @@ const drawRadioButtons = function(container, {
  * @param {Redux store} store
  * @param {String} siteno
  */
-export const drawDownloadForm = function(container, store, siteno, agencyCd) {
+export const drawDownloadForm = function(container, store, siteno, agencyCd, uniqueId) {
     const downloadContainer = container.append('div');
     const formContainer = downloadContainer.append('div')
         .attr('class', 'usa-form')
@@ -159,7 +155,10 @@ export const drawDownloadForm = function(container, store, siteno, agencyCd) {
             hasVisibleCompareIVData: hasVisibleIVData('compare'),
             hasVisibleMedianData: hasVisibleMedianStatisticsData,
             hasVisibleGroundwaterLevels: hasVisibleGroundwaterLevels,
-            primaryParameter: getPrimaryParameter
+            primaryParameter: getPrimaryParameter,
+            uniqueId: () => {
+                return uniqueId;
+            }
         })));
 
     const downloadButton = formContainer.append('button')
diff --git a/assets/src/scripts/monitoring-location/components/hydrograph/index.test.js b/assets/src/scripts/monitoring-location/components/hydrograph/index.test.js
index a39867d1a0480ab2c13f365f0862795f4085fda0..46a46570c05058ef901ae14318558026a0d1cb64 100644
--- a/assets/src/scripts/monitoring-location/components/hydrograph/index.test.js
+++ b/assets/src/scripts/monitoring-location/components/hydrograph/index.test.js
@@ -341,7 +341,8 @@ describe('monitoring-location/components/hydrograph module', () => {
         });
 
         it('should have two download data forms', () => {
-            expect(selectAll('#download-graph-data-container').size()).toBe(2);
+            expect(selectAll('#download-graph-data-container').size()).toBe(1);
+            expect(selectAll('#download-graph-data-container-data-table').size()).toBe(1);
         });
 
         it('should have method select element', () => {
diff --git a/assets/src/scripts/monitoring-location/components/hydrograph/select-actions.js b/assets/src/scripts/monitoring-location/components/hydrograph/select-actions.js
index 2e9a72764fbe81f9118cb102aa95bd57b023c971..ab49a03f4d0abc2f3f781261e2c094f92dd28de2 100644
--- a/assets/src/scripts/monitoring-location/components/hydrograph/select-actions.js
+++ b/assets/src/scripts/monitoring-location/components/hydrograph/select-actions.js
@@ -8,7 +8,7 @@ import {drawDownloadForm} from './download-data';
 /*
  * Helper function to render a select action button on listContainer
  */
-const appendButton = function(listContainer, {uswdsIcon, buttonLabel, idOfDivToControl}) {
+export const appendButton = function(listContainer, {uswdsIcon, buttonLabel, idOfDivToControl}) {
     const button = listContainer.append('li')
         .attr('class', 'usa-button-group__item')
         .append('button')
@@ -78,5 +78,5 @@ export const drawSelectActions = function(container, store, siteno, agencyCode)
     container.append('div')
         .attr('id', 'download-graph-data-container')
         .attr('hidden', true)
-        .call(drawDownloadForm, store, siteno, agencyCode);
+        .call(drawDownloadForm, store, siteno, agencyCode, 'container');
 };
diff --git a/assets/src/styles/components/hydrograph/_app.scss b/assets/src/styles/components/hydrograph/_app.scss
index 621b1a9691f0749eae12d567a607b0e9a55842f5..dd623f943a80e9c90cd97c6072a28bfdacf8e1db 100644
--- a/assets/src/styles/components/hydrograph/_app.scss
+++ b/assets/src/styles/components/hydrograph/_app.scss
@@ -68,7 +68,7 @@
     }
   }
 
-  #download-graph-data-container > div {
+  [id^='download-graph-data-container'] > div {
     @include uswds.grid-row;
     @include uswds.grid-gap;
     @include uswds.u-padding(2);