since we're not really writing here, maybe create a ShardedReader trait and extract common code with ShardedWriter into a super-trait.