again, towards less state change outside of the npm repo