replay: use only #run as the public API