underscore.js compatibility