add search by city feature, fix bugs