public void run() {
   started = System.currentTimeMillis();
   while (keepWaiting && !currentStatus.equals(ProcessStatus.ALL_OK)) {
     delay(10); // in seconds
     if (!currentStatus.equals(ProcessStatus.ALL_OK)
         && (System.currentTimeMillis() - started) > (cleaningDelay * 1000)) // Expired
     {
       // Next status level.
       log("Your cleaning delay (" + cleaningDelay + ") has expired. Going to the next level");
       log(" >>>>>>>>>> Level is " + currentStatus + ", GOING TO THE NEXT LEVEL >>>>>> ");
       switch (currentStatus.level()) {
         case SENT_TO_CAPTAIN:
           {
             log(">>>>>>>>>>>>> SENDING MESSAGE TO OWNER >>>>>");
             started = System.currentTimeMillis(); // Re-initialize the loop
             currentStatus = ProcessStatus.MESSAGE_SENT_TO_OWNER;
             String[] mess = {
               "Your boat, " + boatName + ", has oil in its bilge",
               "The power supply of the bilge pump has been shut off",
               "This oil should be cleaned.",
               "Reply to this message by sending CLEAN when done"
             };
             //  String mess = "Your boat, " + boatName + ", has oil in its bilge.";
             sendSMS(phoneNumber_2, mess);
           }
           break;
         case SENT_TO_OWNER:
           {
             log(">>>>>>>>>>>>> SENDING MESSAGE TO AUTHORITIES >>>>>");
             started = System.currentTimeMillis(); // Re-initialize the loop
             currentStatus = ProcessStatus.MESSAGE_SENT_TO_AUTHORITIES;
             String[] mess = {
               "The vessel " + boatName + " has oil in its bilge",
               "The power supply of the bilge pump has been shut off",
               "This oil should be cleaned.",
               "Reply to this message by sending CLEAN when the bilge has been cleaned."
             };
             //  String mess = "The vessel " + boatName + " has oil in its bilge."};
             sendSMS(phoneNumber_3, mess);
           }
           break;
         default:
           log(">>>>>>>>>>>>> FULL RESET NEEDED >>>>>");
           keepWaiting = false; // Full reset needed.
           break;
       }
     }
   }
   log("  >>> " + this.getClass().getName() + " completed.");
 }