Maybe have basePath be an overloaded arg, so a call to createWriter(Configuration, CodecInfo) implies that the basePath will be used, where-as a 3 arg ctor will assume that the Path provided is not null (can use an assert).