implement overlap removal