diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 64f88957edfe074a9626bc904ae7798289feec8a..a953fc557102e83c552ad1e93c94a7b8eeda0fb5 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -1,3 +1,6 @@
+variables:
+  GITLAB_TOKEN: '${CI_JOB_TOKEN}'
+
 stages:
   - test
   - publish
diff --git a/.npmrc b/.npmrc
index fcdbb5524a8bff8905b96f274821a3c8f1c5f6f4..9292540cc0294d3a0c90c62202e44cdd9f406db2 100644
--- a/.npmrc
+++ b/.npmrc
@@ -1 +1,2 @@
 @ghsc:registry=https://code.usgs.gov/api/v4/packages/npm/
+//code.usgs.gov/api/v4/packages/npm/:_authToken=${GITLAB_TOKEN}
diff --git a/example/.npmrc b/example/.npmrc
new file mode 100644
index 0000000000000000000000000000000000000000..9292540cc0294d3a0c90c62202e44cdd9f406db2
--- /dev/null
+++ b/example/.npmrc
@@ -0,0 +1,2 @@
+@ghsc:registry=https://code.usgs.gov/api/v4/packages/npm/
+//code.usgs.gov/api/v4/packages/npm/:_authToken=${GITLAB_TOKEN}
diff --git a/example/package-lock.json b/example/package-lock.json
index dac5d4d9b0997cb868184ec7a833f6e4aae457a5..e077c78c0f80bdf96c80b7ffbe3167f5675a7e86 100644
--- a/example/package-lock.json
+++ b/example/package-lock.json
@@ -1506,6 +1506,17 @@
         "to-fast-properties": "^2.0.0"
       }
     },
+    "@ghsc/nshmp-utils": {
+      "version": "2.0.1",
+      "resolved": "https://code.usgs.gov/api/v4/projects/1414/packages/npm/@ghsc/nshmp-utils/-/@ghsc/nshmp-utils-2.0.1.tgz",
+      "integrity": "sha1-xapLYFECuFrkYMxnmPG4U0LnB1M=",
+      "requires": {
+        "@mapbox/geojson-extent": "^0.3.2",
+        "d3-format": "^1.4.4",
+        "mapbox-gl": "^1.11.1",
+        "plotly.js-dist": "^1.54.7"
+      }
+    },
     "@istanbuljs/schema": {
       "version": "0.1.2",
       "resolved": "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.2.tgz",
@@ -1710,7 +1721,7 @@
     "@nshmp/disagg-d3": {
       "version": "file:..",
       "requires": {
-        "@nshmp/nshmp-utils": "^1.2.5",
+        "@ghsc/nshmp-utils": "^2.0.1",
         "d3": "^3.5.17"
       },
       "dependencies": {
@@ -1737,6 +1748,17 @@
             "js-tokens": "^4.0.0"
           }
         },
+        "@ghsc/nshmp-utils": {
+          "version": "1.2.5",
+          "resolved": "https://registry.npmjs.org/@ghsc/nshmp-utils/-/nshmp-utils-1.2.5.tgz",
+          "integrity": "sha512-dZUTJYGz2V7dqUPGKpCofw9OhbUtZYnap9j0QhQ6otvjURTEtntn6f3+ZDlh1drqUWBTmzzAqDBvvymOFndnXQ==",
+          "requires": {
+            "@mapbox/geojson-extent": "^0.3.2",
+            "d3-format": "^1.4.4",
+            "mapbox-gl": "^1.11.1",
+            "plotly.js-dist": "^1.54.7"
+          }
+        },
         "@mapbox/extent": {
           "version": "0.4.0",
           "resolved": "https://registry.npmjs.org/@mapbox/extent/-/extent-0.4.0.tgz",
@@ -1819,17 +1841,6 @@
           "resolved": "https://registry.npmjs.org/@mapbox/whoots-js/-/whoots-js-3.1.0.tgz",
           "integrity": "sha512-Es6WcD0nO5l+2BOQS4uLfNPYQaNDfbot3X1XUoloz+x0mPDS3eeORZJl06HXjwBG1fOGwCRnzK88LMdxKRrd6Q=="
         },
-        "@nshmp/nshmp-utils": {
-          "version": "1.2.5",
-          "resolved": "https://registry.npmjs.org/@nshmp/nshmp-utils/-/nshmp-utils-1.2.5.tgz",
-          "integrity": "sha512-dZUTJYGz2V7dqUPGKpCofw9OhbUtZYnap9j0QhQ6otvjURTEtntn6f3+ZDlh1drqUWBTmzzAqDBvvymOFndnXQ==",
-          "requires": {
-            "@mapbox/geojson-extent": "^0.3.2",
-            "d3-format": "^1.4.4",
-            "mapbox-gl": "^1.11.1",
-            "plotly.js-dist": "^1.54.7"
-          }
-        },
         "@phenomnomnominal/tsquery": {
           "version": "4.1.0",
           "resolved": "https://registry.npmjs.org/@phenomnomnominal/tsquery/-/tsquery-4.1.0.tgz",
@@ -2862,17 +2873,6 @@
         }
       }
     },
-    "@nshmp/nshmp-utils": {
-      "version": "1.2.5",
-      "resolved": "https://registry.npmjs.org/@nshmp/nshmp-utils/-/nshmp-utils-1.2.5.tgz",
-      "integrity": "sha512-dZUTJYGz2V7dqUPGKpCofw9OhbUtZYnap9j0QhQ6otvjURTEtntn6f3+ZDlh1drqUWBTmzzAqDBvvymOFndnXQ==",
-      "requires": {
-        "@mapbox/geojson-extent": "^0.3.2",
-        "d3-format": "^1.4.4",
-        "mapbox-gl": "^1.11.1",
-        "plotly.js-dist": "^1.54.7"
-      }
-    },
     "@schematics/angular": {
       "version": "10.0.7",
       "resolved": "https://registry.npmjs.org/@schematics/angular/-/angular-10.0.7.tgz",
@@ -10120,9 +10120,9 @@
       }
     },
     "plotly.js-dist": {
-      "version": "1.54.7",
-      "resolved": "https://registry.npmjs.org/plotly.js-dist/-/plotly.js-dist-1.54.7.tgz",
-      "integrity": "sha512-zcBc+VQ7lYLHiWWug9W2Aahi0NxBFynjClfmWOdW6atv4TJYK7XNB5Hxk94L7BH2dWHrNbkIHBxenRBKAmoC+Q=="
+      "version": "1.55.2",
+      "resolved": "https://registry.npmjs.org/plotly.js-dist/-/plotly.js-dist-1.55.2.tgz",
+      "integrity": "sha512-1QBBIPnh/G+8w9h/6pr7DQGm3t/XZptskUxJQsqTJJ1uth4xsDj2ltkmzujI5cG4lZadurJnfrJbFof+LHiyHg=="
     },
     "pnp-webpack-plugin": {
       "version": "1.6.4",
diff --git a/example/package.json b/example/package.json
index 9655c4387a71e99d2867046b0d3cd8a209cdcbd3..eea1a286fbd923cc662b0e6708bb535569dc9e10 100644
--- a/example/package.json
+++ b/example/package.json
@@ -19,8 +19,8 @@
     "@angular/platform-browser": "~10.0.9",
     "@angular/platform-browser-dynamic": "~10.0.9",
     "@angular/router": "~10.0.9",
+    "@ghsc/nshmp-utils": "^2.0.1",
     "@nshmp/disagg-d3": "file:..",
-    "@nshmp/nshmp-utils": "^1.2.5",
     "geojson": "^0.5.0",
     "rxjs": "~6.5.5",
     "tslib": "^2.0.0",
diff --git a/example/src/app/app.component.ts b/example/src/app/app.component.ts
index b48e1ba9db25bf3efaaf885c02de7f42e00c60a2..2f007885c1d63c89425749884f9a3daaa3154b85 100644
--- a/example/src/app/app.component.ts
+++ b/example/src/app/app.component.ts
@@ -1,7 +1,7 @@
 import { Component, ViewChild, ElementRef, OnInit, AfterViewInit } from '@angular/core';
 import { DisaggResponse, Disaggregation, DisaggGraphView } from '@nshmp/disagg-d3/src/disagg';
 import { Collection } from '@nshmp/disagg-d3/src/mvc';
-import { DeaggResponseData } from '@nshmp/nshmp-utils/nshmp';
+import { DeaggResponseData } from '@ghsc/nshmp-utils/nshmp';
 
 import * as deagg from '../assets/deagg.json';
 
diff --git a/example/src/app/app.service.ts b/example/src/app/app.service.ts
index bf7d38d59b7290ff95a4803c98ce4d7f11cabcfb..9aacbfdab4ae855bae7d0af5f375aeec4ef35c70 100644
--- a/example/src/app/app.service.ts
+++ b/example/src/app/app.service.ts
@@ -1,7 +1,7 @@
 import { Injectable } from '@angular/core';
 import { HttpClient } from '@angular/common/http';
 import { map } from 'rxjs/operators';
-import { DeaggUsage, DeaggResponse } from '@nshmp/nshmp-utils/nshmp';
+import { DeaggUsage, DeaggResponse } from '@ghsc/nshmp-utils/nshmp';
 import { throwError, Observable } from 'rxjs';
 
 @Injectable({
diff --git a/package-lock.json b/package-lock.json
index 067aec2a4c701fbe7000f461f5b26c807e460234..f25c2765d2a4ec680c37739a0dba6d560d64f37b 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -1,5 +1,5 @@
 {
-  "name": "@nshmp/disagg-d3",
+  "name": "@ghsc/disagg-d3",
   "version": "0.0.1",
   "lockfileVersion": 1,
   "requires": true,
@@ -30,6 +30,17 @@
         "js-tokens": "^4.0.0"
       }
     },
+    "@ghsc/nshmp-utils": {
+      "version": "2.0.1",
+      "resolved": "https://code.usgs.gov/api/v4/projects/1414/packages/npm/@ghsc/nshmp-utils/-/@ghsc/nshmp-utils-2.0.1.tgz",
+      "integrity": "sha1-xapLYFECuFrkYMxnmPG4U0LnB1M=",
+      "requires": {
+        "@mapbox/geojson-extent": "^0.3.2",
+        "d3-format": "^1.4.4",
+        "mapbox-gl": "^1.11.1",
+        "plotly.js-dist": "^1.54.7"
+      }
+    },
     "@mapbox/extent": {
       "version": "0.4.0",
       "resolved": "https://registry.npmjs.org/@mapbox/extent/-/extent-0.4.0.tgz",
@@ -112,17 +123,6 @@
       "resolved": "https://registry.npmjs.org/@mapbox/whoots-js/-/whoots-js-3.1.0.tgz",
       "integrity": "sha512-Es6WcD0nO5l+2BOQS4uLfNPYQaNDfbot3X1XUoloz+x0mPDS3eeORZJl06HXjwBG1fOGwCRnzK88LMdxKRrd6Q=="
     },
-    "@nshmp/nshmp-utils": {
-      "version": "1.2.5",
-      "resolved": "https://registry.npmjs.org/@nshmp/nshmp-utils/-/nshmp-utils-1.2.5.tgz",
-      "integrity": "sha512-dZUTJYGz2V7dqUPGKpCofw9OhbUtZYnap9j0QhQ6otvjURTEtntn6f3+ZDlh1drqUWBTmzzAqDBvvymOFndnXQ==",
-      "requires": {
-        "@mapbox/geojson-extent": "^0.3.2",
-        "d3-format": "^1.4.4",
-        "mapbox-gl": "^1.11.1",
-        "plotly.js-dist": "^1.54.7"
-      }
-    },
     "@phenomnomnominal/tsquery": {
       "version": "4.1.0",
       "resolved": "https://registry.npmjs.org/@phenomnomnominal/tsquery/-/tsquery-4.1.0.tgz",
@@ -898,9 +898,9 @@
       }
     },
     "plotly.js-dist": {
-      "version": "1.54.7",
-      "resolved": "https://registry.npmjs.org/plotly.js-dist/-/plotly.js-dist-1.54.7.tgz",
-      "integrity": "sha512-zcBc+VQ7lYLHiWWug9W2Aahi0NxBFynjClfmWOdW6atv4TJYK7XNB5Hxk94L7BH2dWHrNbkIHBxenRBKAmoC+Q=="
+      "version": "1.55.2",
+      "resolved": "https://registry.npmjs.org/plotly.js-dist/-/plotly.js-dist-1.55.2.tgz",
+      "integrity": "sha512-1QBBIPnh/G+8w9h/6pr7DQGm3t/XZptskUxJQsqTJJ1uth4xsDj2ltkmzujI5cG4lZadurJnfrJbFof+LHiyHg=="
     },
     "potpack": {
       "version": "1.0.1",
diff --git a/package.json b/package.json
index 090bf73804eadf446f3984343d20e9fc5099a8b0..6da0e8828156c7ef9d95e5cfec974e218f94efa5 100644
--- a/package.json
+++ b/package.json
@@ -1,5 +1,5 @@
 {
-  "name": "@ghsc/nshmp-disagg-d3",
+  "name": "@ghsc/disagg-d3",
   "version": "0.0.1",
   "description": "Disaggregation plots using D3, ported from hazdev",
   "main": "src/index.js",
@@ -30,7 +30,7 @@
     "typescript": "^4.0.2"
   },
   "dependencies": {
-    "@nshmp/nshmp-utils": "^1.2.5",
+    "@ghsc/nshmp-utils": "^2.0.1",
     "d3": "^3.5.17"
   },
   "husky": {
diff --git a/types/disagg/DisaggResponse.d.ts b/types/disagg/DisaggResponse.d.ts
index 07cf774413c49995feabe55b2d447b711ecde44f..9a81cd402e370cf7e7a1b41944d053f57b85bfd1 100644
--- a/types/disagg/DisaggResponse.d.ts
+++ b/types/disagg/DisaggResponse.d.ts
@@ -1,4 +1,4 @@
-import { DeaggResponseData } from '@nshmp/nshmp-utils/nshmp';
+import { DeaggResponseData } from '@ghsc/nshmp-utils/nshmp';
 import { Model } from '../mvc/Model';
 
 /**
diff --git a/types/disagg/Disaggregation.d.ts b/types/disagg/Disaggregation.d.ts
index 41058f6f76d3b1f02b6fcd8cd320a3ac5e4b95d3..bc13c62dd88a4b1afbf933b77fcf3e335c1f36d9 100644
--- a/types/disagg/Disaggregation.d.ts
+++ b/types/disagg/Disaggregation.d.ts
@@ -1,4 +1,4 @@
-import { DeaggResponseData } from '@nshmp/nshmp-utils/nshmp';
+import { DeaggResponseData } from '@ghsc/nshmp-utils/nshmp';
 import { Model } from '../mvc/Model';
 import { DisaggParameters } from './DisaggParameters';