city is optional