int kit_object::operator()() {
          event* e = _event;
  
          vm<kit> self(e);  // smart pointer
          string method = e->_method();
  
          if (method == "kit") { // constructor
                  kit* q = new kit(e->arg(1));
                  _register(q);
                  result( reference((void*)q) );
          } else if (method == "eval") {
                  long res = self->eval(e->arg(1));
                  result( itoa(res) );
          } else if (method == "result") {
                  char* res = self->result( atoi(e->arg(1)) );
                  result(res);
          } else { // dispatch up in the hierarchy
                  return handler_object::operator()();
          }
  
          return 0;
          }