switch to array intersect