many changes related to npm, require