why a package.json?