Are methods `withName`, `withShortName`, and `withPath` supposed to be public rather than package-private? Javadoc of `withPath` should probably say "..with the specified path" rather than "...with the specified short name".