added npm support