Some work wrt #588; minor refactoring to support custom ObjectWriter sub-classes