docs: function() {
        var state = this.bt.current_state();
  
        for(var i=0,len=arguments.length; i<len; i++) {        
          try { 
            return arguments[i].call(this)
          } catch (f) { 
            this.bt.catch_mismatch(f);
            this.bt.restore(state);
          }
        }
        this.bt.mismatch("All alternatives failed");
      }