CommonJS compatibility