delegate switch