major rework for npm publish