Factoring out shared parts of the data reader builder classes into a Base