broke city and town into separate classes, added resize handling