code: function bindAll(obj) {
      extend.apply(null, arguments) 
      Object.keys(obj).filter(isMethod).forEach(bindMethods)
      return obj
      
      function isMethod(name) {
          return obj[name] && obj[name].bind === isMethod.bind
      }
      
      function bindMethods(name) {
          obj[name] = obj[name].bind(obj)
      }
  }
docs: /*
  bindAll binds all methods to have their context set to the object
  
  @param Object obj - the object to bind methods on
  @arguments Array [target, ...] - the rest of the objects passed
  in will extended into the obj
  
  @return Object - the bound object