rewrite "intersection" method