More refactoring; all preview/program control now uses the new on/off system