The RoadRaceView part needs scripts to create and add a runner and to refresh the list of runners. You can do this as follows:
recordPBClicked "When RecordPB is clicked, create and add a runner and refresh the list" (self subpartNamed: 'Runner Factory') createInstance. (self subpartNamed: 'Runners Collection') abtPerformAction: #add: with: (self subpartNamed: 'Runner Factory') instance. self refreshRunnersList.
refreshRunnersList "Refresh the visual list of runners every time a runner is added to the Runners Collection" | runners sortedRunners | runners := (self subpartNamed: 'Runners Collection') abtAtAttribute: #self. "The sortBlock orders the runners by their finishTime" sortedRunners := SortedCollection sortBlock: [:runner1 :runner2 | runner1 finishTime < runner2 finishTime]. runners do: [:runner | sortedRunners add: runner]. (self subpartNamed: 'Result List') items: sortedRunners asOrderedCollection.