Uses CommonJS, AMD or browser globals