implement obj.reader