use reserve_space() in shard and avoid duplicating code.