Restructure repository and publish to NPM