anchor.diff:      run = new Run._(cpt);
       runModules = new RunModules(script.modules, run, persistence);
   
  +    uis.forEach((createUi) => createUi(runModules.interfaces));
  +
       script.block(run, runModules.modules);
     }
  -
  -  uis.forEach((createUi) => createUi(runModules.interfaces));
   }
   
   class Script {
  
positive.code:     run = new Run._(ff.getCurrentPlayTime);
      runModules = new RunModules(script.modules, run, persistence);
  
      ff.run((ff) {
        script.block(run, runModules.modules);
        persistence.savedEvents.forEach((e) {
          new Future.delayed(e.offset, () {
            runModules.interfaceHandlers[e.moduleName]
                .handle(e.action, e.args);
          });
        });
        ff.fastForward(persistence.savedEvents.last.offset);
  
negative.code: part 'src/core/persistence.dart';
  
  /// Creates a new [Run] for this script by instantiating the modules it
  /// requires, then calls the script's [Block], and replays back any saved events
  /// provided in [persistence]. Finally, we create the provided [ui]s.
  start(Script script,
      {List<CreateUi> uis: const [],
      Persistence persistence: const NoopPersistance()}) {
  