docs: function doBindForMethod (signature) {
      // validate signature
      signature = getValidSignature(signature)
      // if method is not defined do nothing
      if (!hasMethod(signature.signature)) {
          return
      }
      // get method and module
      var method = getMethod(signature.signature)
      var module = getModule(signature.moduleName)
      // skip if no binds for module
      if (!defined(immutable.binds[signature.moduleName])) {
          return
      }
      // skip if no binds for method
      if (!defined(immutable.binds[signature.moduleName][signature.methodName])) {
          return
      }
      // get all binds for method indexed by bind method
      var bindTypeBinds = immutable.binds[signature.moduleName][signature.methodName]
      // iterate over each bind method
      _.each(bindTypeBinds, (boundMethods, bindType) => {
          // iterate over each bind
          _.each(boundMethods, boundMethod => {
              // do nothing if already bound
              if (boundMethod.bound) {
                  return
              }
              // bind method
              module.bind(bindType, signature.methodName, boundMethod.method)
              // set bound flag
              boundMethod.bound = true
          })
      })
  }