added support for commonjs modules