add do_mode