AMD and CommonJS support