add shutdownhook