refactor overlap