code: function () {
              /*  determine parameters  */
              var params = $cs.params("unobserve", arguments, {
                  id: { pos: 0, req: true, valid: "string" }
              });
  
              /*  determine the actual component owning the model
                  as we want to unsubscribe the change event there only  */
              var owner = null;
              var comp = this;
              var subscription;
              while (comp !== null) {
                  owner = comp.property({ name: "ComponentJS:model", returnowner: true });
                  if (!_cs.isdefined(owner))
                      throw _cs.exception("unobserve", "no model subscription found");
                  if ((subscription = owner._subscription(params.id, true)) !== undefined)
                      break;
                  comp = owner.parent();
              }
              if (comp === null)
                  throw _cs.exception("unobserve", "no model subscription found");
  
              /*  unsubscribe from model value change event  */
              owner.unsubscribe(params.id);
  
              /*  unmark component for having subscribers of operation  */
              var key = "ComponentJS:model:subscribers:" + subscription.op;
              var subscribers = owner.property({ name: key, def: 0 });
              subscribers = subscribers > 0 ? subscribers - 1 : null;
              owner.property({ name: key, value: subscribers });
          }
docs: /*  stop observing model value change