add support for CommonJS require