code: private static String get(Properties p, String key, String defaultValue, Set<String> used){
      String rtn = p.getProperty(key, defaultValue);
      used.add(key);
      return rtn;
    }
docs: Helper for parsing properties
  @param p The properties object
  @param key The key to retrieve
  @param defaultValue The default value if the key does not exist
  @param used The set of keys we have seen
  @return The value of the property at the key