added assemble NPM
further refactoring