refactored to allow zone creation