fix the generic readAll impl
add read tests