create base class for writers to extend, add writer spec