Separating automated switching from user input

Here are some different ways to do it.