added point set intersection method