compatible with npm