TileLayer refactor work