cleanup Writer

fix up the docstrings and switch finish_pub to be a private method because, when overriden, it is passed to pub()/mpub()