not using moment.js or underscore.js; taking them out