reader transformation refactor