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