factored out UI functionality so that sequencer tests are independent of UI