Make zone functions generic