private static void parseLine(String line) {
    StringTokenizer st = new StringTokenizer(line);
    String token = st.nextToken();

    // set pattyCount
    int pattyCount = 1;
    if ("Single".equals(token)) {
      token = st.nextToken();
    } else if ("Double".equals(token)) {
      pattyCount = 2;
      token = st.nextToken();
    } else if ("Triple".equals(token)) {
      pattyCount = 3;
      token = st.nextToken();
    }

    // set pattyType
    String pattyType = "Beef";
    if ("Beef".equals(token)) {
      token = st.nextToken();
    } else if ("Chicken".equals(token) || "Veggie".equals(token)) {
      pattyType = token;
      token = st.nextToken();
    }

    // create burger
    boolean isBaron = "Baron".equals(token);
    Burger burger;
    if (isBaron) {
      st.nextToken();
      burger = new Burger(true);
    } else {
      burger = new Burger(false);
    }

    // change pattyType
    burger.changePatties(pattyType);

    // add the correct amount of patties
    while (pattyCount > 1) {
      burger.addPatty();
      pattyCount--;
    }

    // check for additions/omissions
    if (!st.hasMoreTokens()) {
      System.out.println(burger.toString());
      return;
    }
    st.nextToken(); // remove "with"
    if ("no".equals(token)) st.nextToken(); // remove "no"

    // omissions/additions
    while (st.hasMoreTokens() && !(token = st.nextToken()).equals("but")) {
      if (isCategory(token)) {
        if (isBaron) burger.removeCategory(token);
        else burger.addCategory(token);
      } else {
        if (isBaron) burger.removeIngredient(token);
        else burger.addIngredient(token);
      }
    }

    // check for exceptions
    if (!st.hasMoreTokens()) {
      System.out.println(burger.toString());
      return;
    }
    if ("no".equals(token)) st.nextToken(); // remove "no"

    // exceptions
    while (st.hasMoreTokens()) {
      token = st.nextToken();
      if (isBaron) burger.addIngredient(token);
      else burger.removeIngredient(token);
    }

    System.out.println(burger.toString());
  }