made into npm package