commonjs compatibility