bigin to rewrite underscore.js