protected static void run() throws RequirementsNotMetException, IOException {

    while (!end) {

      if (i >= timeoutCounter) {
        if (!refreshSession()) {
          end = true;
        }
      } else {

        ++i;
        System.out.print(i + "|Enter a command ('help' for commands):");
        String in = br.readLine();
        switch (getCommand(in)) {
          case -1:
            break;
          case 1:
            createPerson();
            break;
          case 2:
            end = true;
            System.out.println("Ending");
            break;
          case 3:
            printDatabase();
            break;
          case 4:
            AccessController.login();
            break;
          case 5:
            AccessController.logout();
            break;
          case 6:
            printCommands();
            break;
          case 7:
            addAchievement();
            break;
          case 8:
            cleanGuests();
            break;
          case 9:
            AccessController.getStatus();
            break;
          case 10:
            selectPerson();
            break;
          case 11:
            togglePrintRequests();
            break;
          case 12:
            registerUser();
            break;
        }
      }
    }
  }