get rid of Reader, simpler structure