anchor.diff:      run = new Run._(ff.getCurrentPlayTime);
       runModules = new RunModules(script.modules, run, persistence);
   
  +    uis.forEach((createUi) => createUi(runModules.interfaces));
  +
       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);
  +          runModules.interfaceHandlers[e.moduleName].handle(e.action, e.args);
           });
         });
         ff.fastForward(persistence.savedEvents.last.offset);
  
positive.code:     run = new Run._(cpt);
      runModules = new RunModules(script.modules, run, persistence);
  
      script.block(run, runModules.modules);
    }
  
    uis.forEach((createUi) => createUi(runModules.interfaces));
  }
  
  class Script {
  
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()}) {
  