renamed to core.js