Reimplement restart with minimal changes in events