add CommonJS support