refactor tile splitting