code: public static synchronized DeleteOnExit getInstance() {
          if (instance == null) {
              instance = new DeleteOnExit();
              Runtime.getRuntime().addShutdownHook(instance);
          }
  
          return instance;
      }
docs: Returns our singleton instance, creating it if necessary.