@Override
 public void tilesRemoved(Dimension dimension, Set<Tile> tiles) {
   for (Tile tile : tiles) {
     tile.removeListener(this);
   }
   fireTilesChangedIncludeBorder(tiles);
 }
 @Override
 public void removeTileListener(TileListener tileListener) {
   listeners.remove(tileListener);
   if (active && listeners.isEmpty()) {
     for (Tile tile : ((Dimension) tileProvider).getTiles()) {
       tile.removeListener(this);
     }
     ((Dimension) tileProvider).removeDimensionListener(this);
   }
 }