just double checking that you intend to call NewWritableFile from inside NewWriteOnlyFile (or at least explain *why* in a comment, other than "derived from NewWritableFile")