implemented read benchmark