code: function () {
              /*  determine parameters  */
              var params = $cs.params("spool", arguments, {
                  name:  { pos: 0,     req: true },
                  ctx:   { pos: 1,     req: true },
                  func:  { pos: 2,     req: true },
                  args:  { pos: "...", def: []   }
              });
  
              /*  sanity check parameters  */
              if (!_cs.istypeof(params.func).match(/^(string|function)$/))
                  throw _cs.exception("spool", "invalid function parameter (neither function object nor method name)");
              if (_cs.istypeof(params.func) === "string") {
                  if (_cs.istypeof(params.ctx[params.func]) !== "function")
                      throw _cs.exception("spool", "invalid method name: \"" + params.func + "\"");
                  params.func = params.ctx[params.func];
              }
  
              /*  spool cleanup action  */
              if (!_cs.isdefined(this.__spool[params.name]))
                  this.__spool[params.name] = [];
              this.__spool[params.name].push(params);
              return;
          }
docs: /*  spool an action for grouped execution