reader base class