code: private String transformToPluralForm(String singular) {
          String lowercaseSingular = singular.toLowerCase();
          if (IRREGULAR_NOUNS.containsKey(lowercaseSingular)) {
              // e.g. "Woman" -> "Women", "Ox" -> "Oxen" …
              String plural = IRREGULAR_NOUNS.get(lowercaseSingular);
              if (Character.isUpperCase(singular.charAt(0)) && plural.length() >= 2) {
                  plural = String.valueOf(plural.charAt(0)).toUpperCase() + plural.substring(1);
              }
              return plural;
          }
  
          StringBuilder plural = new StringBuilder();
  
          // start with singular form
          plural.append(singular);
  
          if (singular.endsWith(String.valueOf(LAST_CHAR_Y))) {
              // e.g. "City" -> "Cities"
  
              // replace last char with suffix form
              int length = plural.length();
              plural.replace(length - 1, length, PLURAL_SUFFIX_IES);
  
          } else if (singular.endsWith(String.valueOf(LAST_CHAR_S))
              || singular.endsWith(String.valueOf(LAST_CHAR_X))
              || singular.endsWith(String.valueOf(LAST_CHAR_Z))
              || singular.endsWith(LAST_CHARS_CH)
              || singular.endsWith(LAST_CHARS_SH)) {
              // e.g. "Bus" -> "Buses"
              // e.g. "Box" -> "Boxes"
              // e.g. "Buzz" -> "Buzzes"
              // e.g. "Wish" -> "Wishes"
              // e.g. "Pitch" -> "Pitches"
  
              plural.append(PLURAL_SUFFIX_ES);
  
          } else {
              // e.g. "Boat" -> "Boats"
  
              // default
              plural.append(PLURAL_SUFFIX_S);
          }
  
          return plural.toString();
      }
docs: Transforms a singular form to the plural form, based on these rules:
  http://www.edufind.com/english-grammar/plural-nouns/ Only some irregular nouns are
  respected in this implementation.
  
  @param singular
  @return