virtual public void invoke(ControlMode fromMode = null)
 {
 }
 virtual public void leave(ControlMode toMode = null)
 {
 }
 private ControlModeChanger()
 {
     this.current_mode = new ControlMode();
 }