improved intersection based