readers reimplemented