implement Base.IO compatible interface for reader