more clear code for base reader