recurse arrays for intersection instead