Instead of trying to extend the Mode::Visual special case, just split out into three different modes.