better city parsing