regions function