add restart functioning