work with CommonJS