added self relaunch