Reimplementation of underscore.js