@Override
    public void worldChangedAt(Position pos) {

        // Immutable cities and units took away a lot of the elegance here...

        CityFigure cf = cityFigures.get(pos);
        City city = game.getCityAt(pos);
        if (city != null){
            if (cf != null) editor.drawing().remove(cf);
            cf = new CityFigure(city,new Point(GfxConstants.getXFromColumn(pos.getColumn()), GfxConstants.getYFromRow(pos.getRow())));
            editor.drawing().add(cf);
            cityFigures.put(pos,cf);
        }

        UnitFigure uf = unitFigures.get(pos);
        Unit unit = game.getUnitAt(pos);
        if (unit == null && uf != null){
            editor.drawing().remove(uf);
            unitFigures.remove(pos);
        } else if ( unit != null ){
            if (uf != null) editor.drawing().remove(uf);
            uf = new UnitFigure(unit,new Point(GfxConstants.getXFromColumn(pos.getColumn()), GfxConstants.getYFromRow(pos.getRow())));
            editor.drawing().add(uf);
            unitFigures.put(pos,uf);
        }


    }