public Form1()
        {
            InitializeComponent();
            languageDictionary.Load("english", "alpha");
            writingObserver.Initialize(languageDictionary);
            Logger.Initialize(lastMessageLabel);
            StatusManager.Initialize(statusLabel);
            UIUpdater.Initialize(this, predictedWordsTextBox, writingObserver);
            MessagesInterpreter.Initialize(connectedComponentsTool, writingObserver);

            Logger.LogInfo("app started");

            this.FormClosed += Form1_FormClosed;

            this.drawPanelPublic           = this.drawPanel;
            drawPanelPaintEventHandler     = new PaintEventHandler(this.drawPanel_Paint);
            drawPanelMouseUpEventHandler   = new MouseEventHandler(this.drawPanel_MouseUp);
            drawPanelMouseMoveEventHandler = new MouseEventHandler(this.drawPanel_MouseMove);
            drawPanelMouseDownEventHandler = new MouseEventHandler(this.drawPanel_MouseDown);

            ApplicationUseManager appUseManagerInstance = ApplicationUseManager.Instance;

            appUseManagerInstance.Initialize(this);
            appUseManagerInstance.TriggerApplicationNotReady();

            ConnectionManager.StartListeningToConnections();
            // !!!!!!!!!!!!!!!!!!!!!!!!!  LET THE CLIENT START ALONG WITH THE MAIN APP!!!!!!!!!!!!!!
            ApplicationStarter.StartPythonClientFromStartingPoint();

            m_connectedComponents  = new List <ConnectedComponent>();
            this.m_auxiliaryBitmap = new Bitmap(drawPanel.Width, drawPanel.Height, drawPanel.CreateGraphics());
            Graphics.FromImage(m_auxiliaryBitmap).Clear(Color.White);
            connectedComponentsTool.Initialize(m_auxiliaryBitmap);
        }