city state function is probably a better solution