function hello(arg) {
  this.arg=arg;
  this.act = {
    main : function () {
      log('Hello',this.arg);
    },
    more : function () {
      log('World');
      // throw error
      function foo() {
        return {}.x()
      }
      // try { foo() } catch (e) { log(e.toString()) }
      foo()
    },
    end : function () {
      log('Terminate');
    }
  }
  this.trans = {
    main : more,
    more : end
  }
  this.on = {
    // w/o handler agent will be terminated on error
    error : function (err) { log('error',err,this.next) }
  }
  this.next='main';
}
compile(hello,{verbose:1});
create('hello','You')
start()