I haven't decided if I like the city leveling bonus yet but I think the current system could be improved. I would like to see the bonuses that are available be dependant on what you've built and/or what the resources are in the area. I think this would be an improvement as it would give cities more personality and would allow for you to make many potential improvement types without having huge lists the user needs to scroll through after each level up. There are so many potential bonuses you could offer the player that are currently unavailable such as speeding up unit training, giving attack or defense bonuses to units built in the city, having units move faster, combat speed bonuses, trading bonuses, prestige bonuses, bigger borders, etc. Not only that but it also makes sense. Why should a city with no farm have the potential of learning how to farm better? The people shouldn't have the opportunity of becoming expert farmers if they are that inexperienced at it. On the other side a city that has invested heavily in unit recruiting buildings would have extra options for building better units or building them faster. Or a city that has temples and pubs that boost prestige would be offered a prestige bonus option. You could get complicated with this but it could also be pretty simple and straightforward. Simple = if prestige is greater than 2 then offer the prestige bonus. Complex = if has iron mine and barracks and forge and researched x and y and built at least 5 units with armor then offer + unit defense.