Refactoring: split io.output module into io.naming and io.writer