// Public interface
        // Operations
        // Channel Creation
        public static void Create_Lobby_Chat_Channel( CChatChannelConfig channel_config, ELobbyID lobby_id, EPersistenceID source_player )
        {
            CCreateChatChannelRequestServerMessage create_lobby_channel_message = new CCreateChatChannelRequestServerMessage( channel_config );
            create_lobby_channel_message.Handler =
                delegate( CResponseMessage response )
                {
                    CCreateChatChannelResponseServerMessage response_msg = response as CCreateChatChannelResponseServerMessage;
                    On_Lobby_Chat_Channel_Creation_Response( lobby_id, source_player, response_msg );
                };

            CServerMessageRouter.Send_Message_To_Chat_Server( create_lobby_channel_message );
        }
        public static void Create_Observer_Chat_Channel( CChatChannelConfig observer_channel_config, EMatchInstanceID match_id )
        {
            CCreateChatChannelRequestServerMessage create_observer_channel_message = new CCreateChatChannelRequestServerMessage( observer_channel_config );
            create_observer_channel_message.Handler =
                delegate( CResponseMessage response )
                {
                    CCreateChatChannelResponseServerMessage response_msg = response as CCreateChatChannelResponseServerMessage;
                    On_Observer_Chat_Channel_Creation_Response( match_id, response_msg );
                };

            CServerMessageRouter.Send_Message_To_Chat_Server( create_observer_channel_message );
        }
        // Methods
        // Public interface
        public void Initialize_Chat()
        {
            CChatChannelConfig config = new CChatChannelConfig( CChatChannelConfig.Make_Admin_Channel( GENERAL_CHANNEL_NAME ),
                                                                                 GENERAL_CHANNEL_NAME,
                                                                                 EPersistenceID.Invalid,
                                                                                 EChannelGameProperties.General );
            config.AnnounceJoinLeave = false;
            config.IsMembershipClientLocked = true;

            CCreateChatChannelRequestServerMessage create_request = new CCreateChatChannelRequestServerMessage( config );
            create_request.Handler = On_General_Chat_Creation_Response;

            CServerMessageRouter.Send_Message_To_Chat_Server( create_request );
        }