new intersection rewrite (unfinished)