Add self-restart and update TODO