added commonjs wrapper