overlap logic