Let's just take all the getBaseRecordWriter() and put it into a static function (I don't see it actually using anything in the HAIF object). Then HAIF and the ResettableWriter can both call this function and there is no need for this whole creator object?