void UpdateTextFieldAndPredictionsButtons(string data)
    {
        data = data.Trim('\r', '\n');
        string[] data1 = data.Split('#');

        if (data1.Length > 0)
        {
            switch (data1[0])
            {
            case "restart":
                Debug.Log("sentence re-entry");
                UnityMainThreadDispatcher.Instance().Enqueue(() =>
                                                             entryProcessing.RestartInput());
                return;

            case "regenerate":
                Debug.Log("sentence re-generation");
                UnityMainThreadDispatcher.Instance().Enqueue(() =>
                                                             entryProcessing.RegenerateSentences());
                return;

            case "switchA":
                Debug.Log("switch A");
                UnityMainThreadDispatcher.Instance().Enqueue(() =>
                                                             switchABCD.switchA());
                return;

            case "switchB":
                Debug.Log("switch B");
                UnityMainThreadDispatcher.Instance().Enqueue(() =>
                                                             switchABCD.switchB());
                return;

            case "switchC":
                Debug.Log("switch C");
                UnityMainThreadDispatcher.Instance().Enqueue(() =>
                                                             switchABCD.switchC());
                return;

            case "switchD":
                Debug.Log("switch D");
                UnityMainThreadDispatcher.Instance().Enqueue(() =>
                                                             switchABCD.switchD());
                return;

            case "switchTrain":
                Debug.Log("switch Train");
                UnityMainThreadDispatcher.Instance().Enqueue(() =>
                {
                    if (SceneManagment.isMain)
                    {
                        switchABCD.switchMain();
                    }
                    else
                    {
                        switchABCD.switchTrain();
                    }
                });
                return;

            case "overlay":
                UnityMainThreadDispatcher.Instance().Enqueue(() =>
                                                             FindObjectOfType <Overlay>().hideOverlayFlag = !FindObjectOfType <Overlay>().hideOverlayFlag
                                                             );
                return;

            case "TorsoReferencing":
                UnityMainThreadDispatcher.Instance().Enqueue(() =>
                                                             FindObjectOfType <TorsoReferencedContent>().SwitchEnabled());
                return;

            case "RestartEye":
                UnityMainThreadDispatcher.Instance().Enqueue(() =>
                {
                    SRanipal_Eye_Framework.Instance.StopFramework();
                    SRanipal_Eye_Framework.Instance.EnableEye = true;
                    SRanipal_Eye_Framework.Instance.StartFramework();
                }
                                                             );
                return;

            case "StopEye":
                UnityMainThreadDispatcher.Instance().Enqueue(() =>
                {
                    SRanipal_Eye_Framework.Instance.StopFramework();
                    SRanipal_Eye_Framework.Instance.EnableEye = false;
                }
                                                             );
                return;

            default:
                break;
            }
        }

        string clientMessage = data1.Aggregate("", (max, cur) => max.Length > cur.Length ? max : cur);

        text = clientMessage.Trim('\r', '\n');

#if UNITY_EDITOR
        server.responseDelay.Stop();
        Debug.Log($"RESPONSE DELAY: {server.responseDelay.ElapsedMilliseconds.ToString()}");
#endif

        ShouldUpdate = true;
    }