must use readunit to group p[sid] to avoid repeat