Basically, I want to write the underscore.js library from scratch, for the learning experience and the portmanteau